2016-03-05 54 views
-5

以防萬一您需要知道我正在處理的程序 - 這是一個家庭作業問題:通過鍵盤輸入一個五位數字。編寫一個函數來獲得反轉數字和另一個函數,以確定原始數字和反轉數字是否相等。在main()中使用這個函數並提供必要的參數來獲得結果。C language_Error:''''在'之前';'''代幣

我的代碼是:

#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 =反(NUM);))' – Ian

+0

這是真實的,它是有錯誤的線但我不知道如何糾正它.. – Mariyah

+0

你爲什麼不告訴我們哪一行有錯誤? –

回答

0

有一些點來解決:

  • 刪除分號if ((numb=num)== (reve=Reversed(num);)),這不應該是。 (主要問題)
  • 正確設置您的代碼。
  • Equality()沒有return聲明,所以它返回的是不可用的。
  • 我想Equality()應該只是確定,而不是打印結果。
  • 變量revenumb in Equality()number in 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)); 
}