C語言-switch語句


switch (表達式的值) {

case 1:

    語句1

    break;

case 2:

    語句2

    break;

case 3:

    語句3

    break;

case 4:

    語句4

    break;

    ......

default:

    默認語句

    break;

  1、適用於離散值的開關判斷,可以轉換成一段連續的范圍

  2、注意case穿透,break的使用。

  3、可以把各個case值定義為enum枚舉或者使用宏定義定義別名

1、使用switch語句完成:輸入一個簡單的兩個數字加減乘除運算的式子,使用switch通過轉換加減乘除符號計算各種情況下式子的值,也就是一個簡單的計算器:

   int a,b;
    float c;
    char sign;
    
    printf("請輸入要運算的數字:");
    scanf("%d",&a);
    getchar(); //在輸入第一個數字后按回車確認,使用getchar在讀取sign的時候會錯誤的把回車符讀進來,所以先使用getchar把這個字符讀走。
    printf("請輸入要進行的運算:");
    
    sign=getchar();
    printf("請輸入要運算的數字:");
    scanf("%d",&b);
    
    switch(sign) {
            case '+':
            c=a+b;
            break;
            case '-':
            c=a-b;
            break;
            case '*':
            c=a*b;
            break;
            case '/':
            if (b) {
                c=a/b;
            }else
                printf("除數不能為0\n");
            
    }
    printf("%d%c%d=%f\n",a,sign,b,c);

2、使用海倫公式計算三角形的面積。海倫公式的面積為formula,其中p=(a+b+c)/2,a,b,c為三角形三條邊長。

注意:本程序應先判斷輸入的三個邊長是否符合三角形兩邊之和大於第三邊,兩邊之差小於第三邊的條件,如果不符合條件,則不是三角形,不能使用海倫公式往下計算,本程序忽略此判斷,假設三個邊長符合三角形的邊長條件。此判斷在下一個程序中會體現出來。

float a,b,c,p,s;
    printf("請輸入三角形三個邊長:\n");
    scanf("%f%f%f", &a, &b, &c);
    
    p = (a+b+c)/2;
    s = sqrt((double)p * (p-a) * (p-b) * (p-c));
    
    printf("三角形的面積是%.2f\n",s);

3、輸入三角形的三條邊長,判斷三角形是直角三角形還是等邊、等腰、一般三角形。使用if嵌套完成。

  float a, b, c;
    
    printf("請輸入三角形三個邊長:\n");
    scanf("%f%f%f", &a, &b, &c);
    
    if (a>0 && b>0 && c>0) {
        if (a+b>c && a+c>b && b+c>a) {
            if (a==b && b==c) {
                printf("輸入是正三角形\n");
            }else if(a==b || b==c || a==c){
               if(a*a==b*b+c*c || a*a+b*b==c*c || a*a+c*c==b*b)
                   printf("輸入是等腰直角三角形\n");
               else printf("輸入是等腰三角形\n");
            }else if(a*a==b*b+c*c || a*a+b*b==c*c || a*a+c*c==b*b){
                printf("輸入是直角三角形\n");
            }else printf("輸入是一般三角形\n");
        }
        else printf("輸入不是三角形\n");
    }else{
        printf("輸入不是三角形\n");
    }

 4、輸入一個百分制的成績,使用switch語句把此成績轉換為A,B,C,D的等級制並輸出:

  int score=0;
  char grade='0';
  scanf("%d",&score); if (score>=0 && score<=100) { switch (score/10) { case 10: case 9: grade = 'A'; break; case 8: grade = 'B'; break; case 7: grade = 'C'; break; case 6: grade = 'D'; break; default: grade ='N'; break; } printf("該成績轉換為等級制為%c!!!\n",grade); }else printf("輸入不合法!!!!\n");

 


免責聲明!

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



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