2012-10-10 37 views
-5

需要一個簡單的c程序的幫助。編寫一個TestValue程序。程序運行但不返回字母等級。 這是我到目前爲止。一個簡單的c程序的幫助

#include <stdio.h> 
int main() 
{ 
     double testValue; 
     char getGrade; 
     printf("Enter your score between o and 100:"); 
     scanf("%if", &testValue); 
     printf("Your grade is %c\n", getGrade); 
     return 1; 
} 
char getGrade(double value) 
{ 
    if(value>=90) 
    return'A'; 
    else if(value>=80) 
    return'B'; 
    else if(value>=70) 
    return'C'; 
    else if(value>=60) 
    return'D'; 
    else if(value>=50) 
    return'F'; 
    return 1; 
} 
+1

'main'函數在終止時沒有錯誤應該返回'0',否則就是不等於'0'。在你的例子中,你基本上告訴操作系統你的程序因錯誤而終止。 – Pablo

+0

詢問相同的[問題](http://stackoverflow.com/questions/12832382/simple-correction-for-ac-program) –

回答

2

%if參數getGrade(50)應該是%lf

您還沒有叫getGrade功能

你有兩個標識符名稱相同。

刪除char getGrade;聲明,只是調用getGrade函數。

+0

+1提供指導如何找出問題,而不是給他們一個副本/粘貼答案。 –

+0

@KenWhite我不相信他/她這樣做:) – sehe

+0

@sehe:它顯然工作。 :-)我會用更多的細節進行擴展,但是在代碼方面不多。它仍然比提供明顯的作業/ noob問題的複製和粘貼答案要好得多。 –

2

對一個函數和一個變量使用相同的名稱是一個壞主意。

您需要:

  • 變化%if%lf
  • 刪除char getGrade;
  • 當調用的函數,它應該是getGrade(testValue)
  • 改變功能char getGrade(double value)到:
char getGrades(double value)  
{  
    if(value>=90)  
    return 'A';  
    else if(value>=80)  
    return 'B';  
    else if(value>=70)  
    return 'C';  
    else if(value>=60)  
    return 'D';  
    return 'F';  
} 
+0

它一直給出字母k。我不知道爲什麼..幫助? – user1736391

+0

我試過了,它可以在我的電腦上正常工作,確保你改變了我告訴過你的內容,而且你沒有遺漏任何東西。 – Maroun

+0

是的,我修好了。謝謝! – user1736391