質問

2011-09-13 14 views
2

質問

#include<stdio.h> 
#include<math.h> 
#pragma warning(disable:4996) 

int main() 
{ 
    float numGrade; 

    printf("\n\nPlease enter your numerical grade: "); 
    scanf("%f", &numGrade); 

    if (numGrade >= 90) 
     printf("\nYou got an A.\n\n"); 
    else if (90 > numGrade >= 80) 
     printf("\nYou got a B.\n\n"); 
    else if (80 > numGrade >= 70) 
     printf("\nYou got a C.\n\n"); 
    else if (70 > numGrade >= 60) 
     printf("\nYou got a D.\n\n"); 
    else if (60 > numGrade) 
     printf("\nYou got an F.\n\n"); 
    else 
     printf("\nThis is an invalid grade!\n"); 
} 

のようなコードがそのようにそれをやってに問題があるか、彼はそれが好きで行う必要があり、私は本から交流の例に取り組んでいた友人がいるし、彼がした:

int main() 
{ 
    float numGrade; 

    printf("\n\nPlease enter your numerical grade: "); 
    scanf("%f", &numGrade); 

    if (numGrade >= 90) 
     printf("\nYou got an A.\n\n"); 
    else if (90 > numGrade && numGrade >= 80) 
     printf("\nYou got a B.\n\n"); 
    else if (80 > numGrade && numGrade >= 70) 
     printf("\nYou got a C.\n\n"); 
    else if (70 > numGrade && numGrade >= 60) 
     printf("\nYou got a D.\n\n"); 
    else if (60 > numGrade) 
     printf("\nYou got an F.\n\n"); 
    else 
     printf("\nThis is an invalid grade!\n"); 
} 
+0

コンパイルして実行したときに、期待通りに動作しましたか? (ヒント:そうではありません) –

+0

'#include'を削除してもよいかどうか尋ねていますか? – Marlon

+0

@Marlon:目立つことはありませんが、最初の例では90> numGrade> = 80の条件が問題です。 2番目の例ではインクルードが仮定されています。 – AnT

答えて

2

最初の例はまったく機能しません。

各テストの最初の比較では、0または1が返されます。したがって、常に2番目の比較が失敗します。

EDIT:

しかし、プログラムはおそらくまだ各テストにおける第2の比較が必要とされていないという理由だけで、希望する方法を「仕事」になります。

+0

で教えられています。それは私が不思議に思っていたものです。 66を除いて多くの数字が入力されていると、実際に正しく機能していたのは間違っていました。彼はそれを変更しましたが、それが間違っていることを確認したかった – shinjuo

+0

素早い返信ありがとう – shinjuo

+1

私はまだそれを実行していませんが、最初の例がA、F、または無効以外のグレードを与えることはないと思いますか? – Mysticial