2016-03-05 4 views
-5

На всякий случай вам нужно знать, в какой программе я работаю. Это вопрос домашней работы. Через клавиатуру вводится пятизначное число. Напишите функцию для получения обратного числа и другую функцию, чтобы определить, являются ли исходные и обратные числа равными или нет. Используйте эти функции внутри main() и укажите необходимые аргументы, чтобы получить результат.C language_Error: expected ')' before ';' token

Мой код:

#include <stdio.h> 

int Reversed(int rev); 
int Equality(int equ); 

int main(){ 
    int num,result; 
    printf("Please enter a number that has five digits:"); 
    scanf("%d", &num); 
    result=Equality(num); 
    return 0; 
} 

int Reversed(int num){ 
int number=num; 
int rev=0; 
int digit; 
do{ 
    digit=num%10; 
    rev=rev*10+digit; 
    num=num/10; 
} 
while ((num>0)); 
return rev; 
} 

int Equality(num){ 
    int reve,numb; 
    if ((numb=num)== (reve=Reversed(num);)) 
printf("number equals the reversed number"); 
else 
printf("number doesn't equal the reversed number"); 
} 
+1

проверить эту строку 'F ((онемели = Num) == (Reve = Перевернутое (число);))' – Ian

+0

Это правда, это линия, которая имеет ошибку но я не знаю, как исправить это. – Mariyah

+0

Почему вы не сказали нам, какая линия имела ошибку? –

ответ

0

Есть некоторые моменты, чтобы исправить:

  • Удалить точку с запятой в if ((numb=num)== (reve=Reversed(num);)), что не должно быть. (основная проблема)
  • Отформатируйте свой код правильно.
  • Equality() не имеет инструкции return, поэтому то, что оно возвращает, неприменимо.
  • Предполагаю, что Equality() должен определять это, а не печатать результат.
  • Переменные reve и numb в Equality() и number в Reversed() не используются, кроме как назначены, поэтому они вам не понадобятся.
  • Тип аргументов функции не следует опускать.

исправленный код:

#include <stdio.h> 

int Reversed(int rev); 
int Equality(int equ); 

int main (void){ 
    int num; 
    printf("Please enter a number that has five digits:"); 
    if(scanf("%d", &num) != 1){ 
     puts("read error"); 
     return 1; 
    } 
    if(Equality(num)) 
     printf("number equals the reversed number"); 
    else 
     printf("number doesn't equal the reversed number"); 
    return 0; 
} 

int Reversed(int num){ 
    int rev=0; 
    int digit; 
    do{ 
     digit=num%10; 
     rev=rev*10+digit; 
     num=num/10; 
    } 
    while (num>0); 
    return rev; 
} 

int Equality(int num){ 
    return (num == Reversed(num)); 
} 
Смежные вопросы