Форум: Форум C++Разное
Новые темы: 00
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибка: a function-definition is not allowed here before '{' token
 
 автор: Cena   (17.12.2011 в 20:03)   письмо автору
 
 

Здраствуйте, у меня в программе ошибки:
F:\7.2.cpp In function `int is_isbyt_number(int)':
26 F:\7.2.cpp a function-definition is not allowed here before '{' token
26 F:\7.2.cpp expected `,' or `;' before '{' token
Помогите пожалуйста исправить
#include <iostream>
using namespace std;

int main()
{
  int n,k,i,l;
  float izbit,s;
  cout<<"n=";
  cin>>n;

  for(i=0; i<=n; i++)
  {
    if(n%2!=0)
    cout<<"nechetnoe="<<0<<"\n";}
    system("pause");
    return 0;
  }
  int is_isbyt_number(int n)
  {
  int k, i; 
  float s;
  if(n<=0) 
  return 0;
  for(i=0, s=0; i<=n; i++)
  {
    if(n%2==0)
    if(n%i==0)
    {
      s+=i;
      k++;
    }
    if(s>2*n) return 1;
    else return 0;
  }
  int is_isbyt_number(int n)
  {
    int i, n;
    double s;
    if(n<=0)
    {
      else cout<<"net polojitelnih chisel";
    }
    for(i = 1; i<=n; i++)
    {
      if(n%i==0) s+=i;
    }
    if(s>2*n) return 1;
    else return 0;
  }
  system("pause");
}

  Ответить  
 
 автор: cheops   (17.12.2011 в 23:30)   письмо автору
 
   для: Cena   (17.12.2011 в 20:03)
 

У вас во-первых функция is_isbyt_number() определена внутри функции main() - это неправильно, функцию is_isbyt_number() следует вынести из области видимости функции main(). Во-вторых функция is_isbyt_number(int n) определена два раза - она должна быть определена только один раз. В-третьих у вас имеется лишний else в конструкции
    if(n<=0)
     {
       else cout<<"net polojitelnih chisel";
     }

PS Свой вариант пока не привожу, так как не знаю, как быть с двумя функциями is_isbyt_number(int n) - какая из них нужна?

  Ответить  
 
 автор: Cena   (18.12.2011 в 00:20)   письмо автору
 
   для: cheops   (17.12.2011 в 23:30)
 

Спасибо, понятно, а вот я поправил программу, и воспринимаются нечетные числа, а четные избыточные - почемуто не видит?#include <iostream>
#include <math.h>
using namespace std;
int main()
{int n,k,i;
float izbit,s;
cout<<"n=";
cin>>n;
if(n%2!=0)
cout<<"0"<<"\n";
system("pause");}
int is_isbyt_number(int n)
{int k, i;
float s;
if(n<=0)
cout<<"net polojitelnih chisel";
for(i=0, s=0; i<=n; i++)
{if(n%2==0 && n%i==0)
{s+=i;
k++;}
if(s>2*n)
cout<<"1"<<"\n";
else
{cout<<"ne yavlayetcya izbitochnim chislom";}}
system("pause");
}

  Ответить  
 
 автор: cheops   (18.12.2011 в 00:37)   письмо автору
 
   для: Cena   (18.12.2011 в 00:20)
 

А теперь у вас в функции main(), функция is_isbyt_number() вообще не вызывается, т.е. вы читаете число n из командной строки, проверяете является ли оно нечетным и завершаете работу. Четные же числа программа игнорирует, так как они не удовлетворяют условию
if(n%2!=0)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования