1

私のコードの何が問題なのか疑問に思っています。ユーザーがマークを入力したときに成績を印刷できませんでした。これが私のコードです:

#include<stdio.h> 
int main() 
{ 
    int x,y,z;
    printf("Enter mark for Bahasa:");
    scanf("%d", &x);
    printf("Enter mark for english:");
    scanf("%d", &y);
    printf("Enter mark for Math:");
    scanf("%d", &z);

    if((x > 75) && ( y > 80) && (z > 60))
        printf(" Grade A");
    else if (( x > 75) && ( y < 80) && (z < 60))
        printf ("Grade B");
    else
        printf("honor");         
}
4

2 に答える 2

2

に行末を追加しますprintf。そのようです:

printf("honor\n");

コマンド ラインで作業している場合、シェル プロンプトによって出力が上書きされることがあります。

于 2012-08-10T01:45:49.913 に答える
1

まず、ギャップがあります。if条件でカバーされていない状態。ユーザーが正確に75、80、60を入力した場合はどうなりますか?もし私があなたなら、">"の代わりに">="を使い、"<"の代わりに"<="を使います。また、xが75未満の場合は、まったくカバーされません。

このステートメントを「if」条件の前に置いて、から何を取得しているのかを正確に確認することができますscanf()

printf("My inputs are %d, %d and %d\n",x ,y ,z);

入力を確認したら。次に、条件を確認します。その行に問題があるかもしれないと思います(前述のように、x <75はまったくカバーされていません):

else if (( x > 75) && ( y < 80) && (z < 60));

多分あなたが本当に必要なのは

(x<=75)

いずれにせよ、プログラムの実行例が役に立ちます:-)

于 2012-08-10T02:48:01.927 に答える