Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2021, 14:32   #1
Sergey_R
Пользователь
 
Регистрация: 13.03.2021
Сообщений: 19
По умолчанию Факториал

Код:
#include <iostream>

using namespace std;
int Factorial(int x);
	
int main() {
	int n;
	cin >> n;
	cout << Factorial(n);

	cin.get();
	return 0;
}

int Factorial(int x) {
	int n = 1;
	if (x > 10 || x < -10)
		cout << "wrong number" << endl;
	else if (x < 0)
		return n;			
	else {
		for (int i = 1; i <= x; i++) {
			n = n * i;
		}
	}
	return n;
}
При вводе числа меньше -10, программа выполняет два условия, то есть выводит сообщение wrong number и выводит единицу, выполняя условие x<0, как сделать, чтобы программа выполняла только первое условие, а при вводе чисел от 0 до -10 выводила только 1
Sergey_R вне форума Ответить с цитированием
Старый 28.03.2021, 15:39   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,299
По умолчанию

Она не выполняет 2 условия. Просто сначала выводится сообщение по условию, а затем печатается результат, который вернула функция Factorial. Можно переделать Factorial в функцию без возврата значения, а всю печать делать внутри Factorial.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 28.03.2021, 18:39   #3
Sergey_R
Пользователь
 
Регистрация: 13.03.2021
Сообщений: 19
По умолчанию

не совсем понял что нужно изменить
Понял, что единицу выводит из-за return n; в конце функции, но если его убрать факториал вообще перестает работать
Sergey_R вне форума Ответить с цитированием
Старый 28.03.2021, 18:43   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,299
По умолчанию

Код:
#include <iostream>

using namespace std;
int Factorial(int x);

int main() {
	int n;
	cin >> n;
	Factorial(n);

	cin.get();
	return 0;
}

void Factorial(int x) {
	int n = 1;
	if (x > 10 || x < -10)
		cout << "wrong number" << endl;
	else {
		for (int i = 2; i <= x; i++) {
			n = n * i;
		}
		cout << n << endl;
	}
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 28.03.2021, 19:42   #5
Sergey_R
Пользователь
 
Регистрация: 13.03.2021
Сообщений: 19
По умолчанию

Спасибо )
Sergey_R вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[РЕШЕНО][Python] факториал, Фибоначчи: в ходе выполнения в цикле все последующие значения факториалов перемножаются с предыдущими, а хочу чтоб выводился факториал конкретного числа Staniislav Помощь студентам 2 19.08.2017 23:57
Вычислить факториал числа п. Факториал числа представить в виде целочисленного массива десятичных цифр. M1kefly Общие вопросы C/C++ 1 07.07.2013 21:00
Факториал Катя) Паскаль, Turbo Pascal, PascalABC.NET 5 03.03.2011 10:00
Факториал ArchiBishop Помощь студентам 0 26.01.2011 23:20
Факториал Freeman-des Помощь студентам 20 14.01.2011 11:05