第二次實驗判斷成績等級。 給定一百分制成績,要求輸出成績的等級。90以上為A,80-89為B,70-79為C,60-69為D,60分以下為E,輸入大於100或小於0時輸出“輸入數據錯誤”。 分別用if和用switch語句實現判斷成績等級。 給定一百分制成績,要求輸出成績的等級。90以上為A,80-89為B,70-79為C,60-69為D,60分以下為E,輸入大於100或小於0時輸出“輸入數據錯誤”


一:實驗內容:1:判斷成績等級。

給定一百分制成績,要求輸出成績的等級。90以上為A,80-89為B,70-79為C,60-69為D,60分以下為E,輸入大於100或小於0時輸出“輸入數據錯誤”。 分別用if和用switch語句實現

#include <stdio.h>
int main()
{
    int grade;
    scanf("%d",&grade);
    if(grade>100||grade<0)
    {
        printf("數據錯誤");
    }
    else
    {
        switch(grade/10)
        {
        case 10:
        case 9:
            printf("A");
            break;
        case 8:
            printf("B");
            break;
        case 7:
            printf("C");
            break;
        case 6:
            printf("D");
            break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
            printf("E");
            break;
        }
        return 0;
    }
}

#include<stdio.h>
int main()
{
    int grade;
    scanf("%d",&grade);
    if(grade>100||grade<0)
    {
        printf("數據錯誤");
    }
    else if(grade>=90&&grade<=100)
    {
        printf("A");
    }
    else if(grade>=80)
    {
        printf("B");
    }
    else if(grade>=70)
    {
        printf("C");
    }
    else if(grade>=60)
    {
        printf("D");
    }
    else if(grade<60)
    {
        printf("E");
    }
    return 0;
}

2:

  1. 判斷整數位數及逆序輸出。

        輸入一個不多於5位數的正整數,判斷它是幾位數並逆序輸出。注意驗證數據的合法性。

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    if(a>9999||a<0)
    {
        printf("數據錯誤");
    }
    else
    {
        if(a/10000>1)
        {
            printf("a是5位數");
        }
        else if(a/1000>1)
        {
            printf("a是4位數");
        }
        else if(a/100>1)
        {
            printf("a是3位數");
        }
        else if(a/10>1)
        {
            printf("a是2位數");
        }
        else
        {
            printf("a是1位數");
        }
    }
    return 0;
}

3:

 回文數問題

        給定一個5位數,判斷它是否是回文數。例如:12321是回文數。回文數的特點是個位和萬位相同,十位和千位相同。

#include <stdio.h>
int main()
{
    int a,b,c,d,e,f,g,h,i;
    scanf("%d",&a);
    b=a/10000;
    c=a%10000;
    d=c/1000;
    e=c%1000;
    f=e/100;
    g=e%100;
    h=g/10;
    i=g%10;
    if(b==i&&d==h)
    {
        printf("a是一個回文數");
    }
    else
    {
        printf("a不是一個回文數");
    }
    return 0;
}

4:

. 計算分段函數

        y=-x+2.5                         0 <= x < 5

        y=2-1.5(x-3)(x-3)        5 <= x < 10

 

        y=x/2-1.5                     10 <= x < 20

       輸入x的值(x為整數),輸出y的值,結果保留3位小數。

#include <stdio.h>
int main()
{
    int x;
    float y;
    scanf("%d",&x);
    if(x>=0&&x<5)
    {
        y=-x+2.5;
        printf("%.3f",y);
    }
    if(x>=5&&x<10)
    {
        y=2-1.5*(x-3)*(x-3);
        printf("%.3f",y);
    }
    if(x>=10&&x<20)
    {
        y=x/2-1.5;
        printf("%.3f",y);
    }
    return 0;
}

二:知識點總結:

1:if語句的嵌套要注意大括號的一一對應,實現if--else的正確匹配

2:switch...case..break語句不要誤丟break,case后面跟的是變量,且case后面要加空格

3:運算符要注意優先級

4:縮進格式並不能暗示else的匹配

5:在if和else后面總要用到{},即使只有一條語句

三:實驗總結

實驗一:if語句注意大括號都要縮進回車,注意格式;  switch語句注意case后面跟的是變量,並且變量間加空格,大括號的一一對應

實驗二:注意考慮數據錯誤,else if的嵌套

實驗三:分清等於號和且號,以及其他常用符號,看清數據的一一對應

實驗四:在作比較時要注意運算符的優先級


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM