請問誰能幫我修正一下~?

題目: 使用者輸入成績,60分以上請回應"PASS!",並判斷80分以上加回應"GREAT!";60分以下請回應"NO PASS!",40分以下加回應"TOO BAD!"‧

以下是我的程式碼↓

#include<stdio.h>

void main()

{

int mygrade=0;

clrscr();

printf("Please input your grade?");

scanf("%d",&mygrade);

if((((mygrade<80)&&(mygrade>=60)))&&(if(mygrade>=80)printf("Great!")));

printf("Pass!");

if((((mygrade>=40)&&(mygrade<60)))&&(if(mygrade<40)printf("Too bad!")));

printf("No pass!");

getche();

}

2 個解答

評分
  • 2 0 年前
    最佳解答

    你用的if這樣判斷不僅容易亂掉,而且也不對

    我改成這樣你看一下

    #include<stdio.h>

    void main()

    {

    int mygrade=0;

    printf("Please input your grade?");

    scanf("%d",&mygrade);

    if (mygrade>=60)

    {

    printf("pass!\t");

    if (mygrade>=80)

    printf("Great!\n");

    printf("\n");

    }

    else

    {

    printf("No pass!\t");

    if (mygrade<40)

    printf("Too bad!\n");

    else

    printf("\n");

    }

    }

    用{}可以增加敘述長度,這樣可以幫助你寫更多東西進去

    這是一個if判斷的巢狀結構

    這樣寫的話應該比較好瞭解吧

  • 2 0 年前

    #include<stdio.h>

    int main()

    {

    int mygrade;

    printf("Please input your grade:");

    scanf("%d",&mygrade);

    if (mygrade<80&&mygrade>=60)

    {

    printf("PASS!");

    }

    else if(mygrade<59&&mygrade>=40)

    {

    printf("NO PASS!");

    }

    else if(mygrade<39)

    {

    printf("TOO BAD!");

    }

    else

    {

    printf("GREAT!");

    }

    return 0;

    }

    這樣子也可以成功

    用&&表示兩個條件同時成立,if才會動作

    其中一個不成立就會到else。

    不過基本上要作這種題目的話用SWITCH會比較快喔

    #include<stdlib.h>

    #include<stdio.h>

    int main()

    {

    int mygrade;

    printf("Please input your grade:");

    scanf("%d",&mygrade);

    switch(mygrade/10)

    {

    case 10:

    case 9:

    case 8: printf("GREAT!\n");break;

    case 7:

    case 6: printf("PASS!\n");break;

    case 5:

    case 4: printf("NO PASS!\n");break;

    default: printf("TOO BAD!\n");

    }

    return 0;

    }

    差不多就這樣了。

還有問題?馬上發問,尋求解答。