C language_Error:expected ')' before ';' token

C language_Error:expected ')' before ';' token

以防万一你需要知道我正在处理的程序 - 这是作业 question:A 通过键盘输入五位数。写一个函数获取反转后的数,再写一个函数判断正数和反转数是否相等。在 main() 中使用此函数并提供必要的参数以获得结果。

我的代码是:

#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");
}

有几点需要修正:

  • 删除 if ( (numb=num)== (reve=Reversed(num);) ) 中的分号,这是不应该的。 (主要问题)
  • 正确格式化您的代码。
  • Equality() 没有 return 声明,所以它 returns 是不可用的。
  • 我想 Equality() 应该只是确定,而不是打印结果。
  • Equality()中的变量revenumbReversed()中的number除了被赋值外没有被使用,所以你不会需要它们。
  • 不应省略函数参数的类型。

更正代码:

#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) );
}