Факториал с помощью функции (помогите отловить ошибку)

 #include <iostream>
 using namespace std;

 int funct(int b)
 {
   int r; // результат
    for(int i=1; i < b; i++)
   r*=i;

 return r;

 }

 int main()
 {
   int a;
   cin >> a;
   cout << funct(a);
 return 0;
 }

Если просто поправить ошибки, то так:

int funct(int b)
 {
   int r = 1; // результат
    for(int i=1; i <= b; i++)
   r*=i;
 return r;
 }

Но ещё нужно было бы обработать факториал от отрицательного числа. Кроме того, тип int обычно слишком «короткий» для такой функции, как факториал. Как минимум надо использовать тип long long.

Алан, спасибо! Я уже делал ошибки, связанные с инициализацией-объявлением, но эту не заметил... Ясно, что тут не хватает условий, и что использовать надо тип побольше, но программа, если так можно выразиться, игрушечная

Пожалуйста ))
Обрати внимание, что у тебя были две ошибки, которые я поправил.

#include "stdafx.h"
#include <conio.h>
#include <iostream>
int main()
{
    int F , C ;
    for(F=0;F<=300;F++)
    {
        F=F+20;
        C=((5/9)*(F-32));
        cout <<"\n   F"<< F <<"\n   C"<< C;
    }
    _getch();
}

(5/9) всегда будет равно 0. Следовательно C — тоже всегда 0.

Отгадай почему! ;-)

Надо записывать как 5.0/9.0?
Но у меня выбивает ошибку:cout:необъявленный идентификатор.

Диана, нужно использовать тип float или double.
Нужно или использовать using namespace std; или писать так std::cout

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.