2012-04-08 6 views
0
#include <iostream> 
    using namespace std; 

    int factor(int n); 

    int main() 
    { 
     int f,n; 

    // Get user input 

     cout << "Enter an integer: "; 
     cin >> n; 

    // Call factorial function 

     f = factor(n); 

    // Output results 

     cout << n << "! = " << f << endl; 

     int factor (int n) 
      if(n <=1) 
      { 
      return 1; 
      } 
      else 
      { 
      int c = n * (n-1); 
      return c; 
      } 
    }; 

Я получаю сообщение об ошибке C2143: синтаксическая ошибка: отсутствует ';' before 'if' Мне было любопытно, если я пропустил что-то простое. Я довольно новичок в C++.ошибка C2143: синтаксическая ошибка: отсутствует ';' before 'if'

+2

Всякий раз, когда вы получаете сообщение об ошибке синтаксиса, которое вы не понимаете, первое, что нужно сделать, это начать удаление (или комментирование) кода до тех пор, пока сообщение не исчезнет. –

+0

У вас есть функция 'int factor (int n)', определенная внутри функции 'main()' ... вы должны определить ее вне. – Aziz

+3

Определите 'factor' перед' main' и назовите его 'factorial'. –

ответ

3

Вы пытаетесь определить функцию factor в функции main. В C++ это запрещено. Кроме того, функция тела для factor нужд скреплений:

int factor(int n) 
{ 
    // function body 
} 

int main() 
{ 
    // function body, factor visible 
} 
+0

Спасибо, я ценю помощь! – MIkey27

+2

@ MIkey27: если это решило проблему, нажмите на галочку рядом с ответом. –

0

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

Смежные вопросы