C語言:switch語句用法
case (c>=90 && c<=100): case后面的必須是一個常量。
你這個可以先將成績除以10,再用switch #include "stdio.h" void main() { char c; /*這里別用char,改成:int c,d;*/ scanf("%c",&c); /*這一句也改成scanf("%d",&c);最好前面再加一句,printf("請輸入成績:"); 在這句后面加一句d=c/10;*/ switch(c) /*然后switch里面用d來判斷,switch(d)*/ { case (c>=90 && c<=100):printf("成績的等級為:A.\n"); break; /*改成: case (10): case (9):printf("成績的等級為:A.\n");break; case (c>=80 && c<=89):printf("成績的等級為:B.\n"); break; /*改成:case (8):printf("成績的等級為:B.\n"); break; } } 因為90到100之間的數經過除以10再取整以后就變成了9;100/10等于10,又因為case調用同一個語句的時候允許就在最后一個語句寫上那個語句,而將前面的那幾個省略掉,所以case (10):后面的就省掉了,當然寫上也不會錯。 你的補充的那個,你可以把它分開表示,就像我給你弄的那個case (c>=90 && c<=100):printf("成績的等級為:A.\n"); break; /*改成: case (10): case (9):printf("成績的等級為:A.\n");break; 雖然有點糾纏不清的感覺,但是希望對解決你的疑問有一定的幫助,呵呵。
【求一段循環語句的C語言程序switch語句.A(90~100),B(80~89,C(70~
#include void main(){ int a; scanf("%d",&a); switch(a){ case 10: case 9: printf("(90~100)\n");break; case 8:printf("(80~89)\n");break; case 7:printf("(70~79)\n");break; case 6:printf("(60~69)\n");break; case 5: case 4: case 3: case 2: case 1: case 0:printf("(0~59)\n");break; default: printf("ERROR\n");break;}}。
c語言switch語句
執行case 2是因為在switch (x) 中x=1,所以執行case 1,然而case 1 這條語句沒有break,所以switch (x)在執行了case 1之后將繼續往下依次執行case語句,直到碰到break就跳出switch 循環。
對于“a的自加是先執行后在自加,當此程序a自加的時候沒有執行其他語句啊?????? ” 則是你沒看到程序中的語句a++,b++它自加完了以后把值任然是賦值給a,b本身的,而不是賦值給其他變量例如c=a++;z=b++。如果是這樣賦值給別的變量的話那么就很明確了c,z的值將和課本上說得一樣都是自加以前的值 。
也就是說這個程序當中最后printf輸出的是a,b的值,但是a,b在自加過程中值都變化了,就是說相當于語句a=a++,b=b++. 我將你的程序進行了更改,你將兩個程序都運行下然后再對照著看一下就明白為什么a,b的值最后是2和1了,程序如下#include
c語言中“switch ”語句的用法有哪些
C語言程序語句switch: switch用在編程中,如C語言中它經常跟case一起使用,是一個判斷選擇代碼。
其功能就是控制業務流程流轉的。 switch語句的語法如下(switch,case和default是關鍵字): switch ( controllingExpression ) { case constantExpression1 : case constantExpression2 : case constantExpression3 : statements; //當滿足constantExpression1、constantExpression2、constantExpression3任何一個都執行statements break; case constantExpression : statements ; break; 。
default : statements ; break; } 遵守switch語句規則 switch語句非常有用,但在使用時必須謹慎。所寫的任何switch語句都必須遵循以下規則: 只能針對基本數據類型使用switch,這些類型包括int、char等。
對于其他類型,則必須使用if語句。 case標簽必須是常量表達式(constantExpression),如42或者"42"。
如果需要在運行時計算case標簽的值,必須使用if語句。 case標簽必須是惟一性的表達式;也就是說,不允許兩個case具有相同的值。
C語言switch應用例子: 例一: #include int main() { double score; printf("請輸入分數:\n"); scanf("%lf",&score); switch((int)(score/10)) //如果寫成witch((int)score/10)會出現嚴重錯誤 { case 10: case 9:printf("A(最好)\n");break; case 8:printf("B(優秀)\n");break; case 7:printf("C(良好)\n");break; case 6:printf("D(及格)\n");break; case 5: case 4: case 3: case 2: case 1: case 0:printf("E(不及格)\n");break; default:printf("Error!\n"); } } 例二: #include int main() { char rank; printf("請輸入分數等級:(A、B、C、D、E)\n"); scanf("%c",&rank); switch(rank)//switch((int)score/10)出現嚴重錯誤,switch(((int)score)/10)出現嚴重錯誤, { case 'A':printf("A(90~100)\n");break; case 'B':printf("B(80~89)\n");break; case 'C':printf("C(70~79)\n");break; case 'D':printf("D(60~69)\n");break; case 'E':printf("E(0~59)\n");break; default:printf("error!\n");break; } } 例三: 輸入年月日,判斷這一天是這一年的第幾天。 #include int main() { int year,month,date,leap,days=0; scanf("%4d%2d%2d",&year,&month,&date); leap=(year%4==0&&year%100!=0||year%400==0); switch(month) { case 12:days+=30; case 11:days+=31; case 10:days+=30; case 9:days+=31; case 8:days+=31; case 7:days+=30; case 6:days+=31; case 5:days+=30; case 4:days+=31; case 3:days+=28+leap; case 2:days+=31; case 1:days+=date;break; } printf("%4d年%2d月%2d日是這一年的第%d天。
\n",year,month,date,days); }。
轉載請注明出處華閱文章網 » switch語句c語言