Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Marianna323
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 14
#1

C++ нахождение факториала числа n с вводом из файла - C++

04.06.2014, 23:50. Просмотров 489. Ответов 5
Метки нет (Все метки)

Здравствуйте!
В общем мне нужно написать программку, которая считала бы факториал числа n типа int и чтобы число для расчета бралось из файла input, а результат записывался в файл output.
У меня вышло вот так
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream.h>
using namespace std;
 
int fact(int n)
{
    if(n < 0) // если пользователь ввел отрицательное число
        return 0; // возвращаем ноль
    if (n == 0) // если пользователь ввел ноль,
        return 1; // возвращаем факториал от нуля
    else // Во всех остальных случаях
        return n * fact(n - 1); // делаем рекурсию.
}
 
int main()
{
    ifstream in ("input.txt");
    char n;
    in.get(n);
    cout << "Factorial " << n << " = " << fact(n) << endl << endl; // fact(N) - функция для вычисления факториала.
    system("pause");
    return 0;
}
Только проблема в том, что он почему-то всегда получает 0, хотя в файле другое число. Что не так в коде?
И помогите пожалуйста с выводом в файл, если можно.
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 23:50     C++ нахождение факториала числа n с вводом из файла
Посмотрите здесь:

Нахождение двойного факториала заданного числа N - C++
Дано целое число N (&gt; 0). Найти двойной факториал N: N!! = N·(N–2)·(N–4)·… (последний сомножитель равен 2, если N — четное, и 1, если N...

нахождение факториала - C++
Вот, написал программу, но почему-то ответ неправильный постоянно выходит, подскажите, что я делаю не так? #include &lt;iostream&gt; ...

Нахождение факториала - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt; using namespace std; unsigned long factroial(unsigned long); int...

Нахождение факториала рекурсией - C++
помогите написать программу для нахождения n факториала рекурсивным методом

Циклическое нахождение факториала - C++
Здравствуйте. Дело в том, что почему то значение факториала складывается со значением предыдущего факториала. В чем ошибка? #include...

Нахождение факториала без рекусрсии - C++
Дайте код на функцию, которая находит факториал числа определенного(которое она берет в аргумент)

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pjeroo
Землянин
34 / 34 / 12
Регистрация: 15.01.2013
Сообщений: 313
05.06.2014, 00:23     C++ нахождение факториала числа n с вводом из файла #2
Marianna323,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <fstream>
using namespace std;
 
int fact(int n)
{
    if(n < 0) // если пользователь ввел отрицательное число
        return 0; // возвращаем ноль
    if (n == 0) // если пользователь ввел ноль,
        return 1; // возвращаем факториал от нуля
    else // Во всех остальных случаях
        return n * fact(n - 1); // делаем рекурсию.
}
 
int main()
{
    ifstream in ("input.txt");
    ofstream out ("output.txt");
    char n;
    int N;
    in.get(n);
    N = n - '0';
    cout << "Factorial " << n << " = " << fact(N) << endl << endl; // fact(N) - функция для вычисления факториала.
    out << "Factorial " << n << " = " << fact(N);
    return 0;
}
Как-то так.
Kerry_Jr
Модератор
Эксперт PHP
2178 / 1974 / 689
Регистрация: 14.05.2014
Сообщений: 5,773
Записей в блоге: 1
Завершенные тесты: 5
05.06.2014, 00:29     C++ нахождение факториала числа n с вводом из файла #3
Цитата Сообщение от Pjeroo Посмотреть сообщение
char n;
int N;
in.get(n);
а разве так нельзя?
C++
1
2
int n;
in >> n;
И факториал лучше итеративно считать
C++
1
2
3
4
5
6
7
8
long fact(int n)
{
    if (n < 0) return 0;
    long f = 1;
    while (n > 1)
        f *= n--;
    return f;
}
Pjeroo
Землянин
34 / 34 / 12
Регистрация: 15.01.2013
Сообщений: 313
05.06.2014, 00:40     C++ нахождение факториала числа n с вводом из файла #4
Kerry_Jr, я просто код поправил, чтобы работал. Но можно и так, даже лучше будет и красивее.
Marianna323
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 14
05.06.2014, 01:45  [ТС]     C++ нахождение факториала числа n с вводом из файла #5
Pjeroo, то ли я чего то совсем не понимаю, то ли код все равно не рабочий. Ну, т.е., если у меня он всегда считал факториал от "0" почему-то, то в Вашем варианте выводит просто 0, и в файл так же не записывает. Хотя возможно я как-то неправильно файлы создаю?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2014, 09:24     C++ нахождение факториала числа n с вводом из файла
Еще ссылки по теме:

Нахождение факториала: для заданного N найти последнюю отличную от нуля цифру - C++
Факториалом натурального числа N (обозначается как N!) называется произведение всех натуральных чисел от 1 до N. Например, 5! = 1*2*3*4*5 =...

Застрял с вводом с файла - C++
Всем здравствуйте. Вот код: #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; //static const int SIZEN = 64; ...

вводом строк из файла - C++
Привет, уважаемые программисты! У меня проблема возникла вот в чем: в файле есть несколько строк текста. мне необходимо, чтобы после...

Удалить файл с вводом имени файла - C++
С помощью такой конструкции задал имя файла и создал его: ofstream hotelsList(hotelName + &quot; rooms.txt&quot;, ios::app); теперь нужно...

Не могу разобраться с вводом числа в цикле - C++
Жирным выделено то, что ввожу я. Вот, что показывается в консоли: &quot;Введите число больше 10. 5. Вы ввели 5. Число меньше 10. Введите...

Переделать программу со вводом с клавиатуры на ввод из файла - C++
нужно сделать в программе чтоб ввод был из файла, а не с клавиатуры #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;math.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,188
Завершенные тесты: 1
05.06.2014, 09:24     C++ нахождение факториала числа n с вводом из файла #6
Цитата Сообщение от Marianna323 Посмотреть сообщение
в файл так же не записывает
В файл из буфера сбрасывает ОС по своим соображениям.
Имеет смысл его закрыть, а уж потом смотреть, что получилось:
вставьте в конец программы out.close();
Yandex
Объявления
05.06.2014, 09:24     C++ нахождение факториала числа n с вводом из файла
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru