1樓:匿名使用者
很簡單,for迴圈裡面巢狀乙個switch語句,所以我們從for迴圈開始看
首先k的初值是5,然後每次迴圈遞減1(k--),所以k在6次迴圈中的取值分別為:
5, 4, 3, 2, 1, 0
接下來把這6個值按從左到右的順序代入switch語句中,就和解方程一樣:
1、k=5,switch中執行的語句為 case 5:s++;break; 所以s此時為1.(s初值為0),接著執行 break跳出此次switch。
2、k=4,switch中執行語句為:case 4: break; 即什麼都不執行就直接break。
3、k=3,switch中執行語句為:case 3:
case 4:break;(兩個語句,直到看見break才停止)。
4、k=2,switch中執行語句為:case 2:s+=2;break; 此時s = 3 (1 + 2 = 3),跳出switch。
5、k=1,switch中執行語句為:case 1:
case 5:s++;break; 此時s = 4,跳出switch。
6、k=0,switch中執行語句為:case 0:
case 2:s+=2;break;此時s = 6,跳出switch。
接著k的值 = -1,此時不滿足for迴圈條件,跳出for迴圈,輸出 s = 6
2樓:不願相離
k=5時,s++後為1,break退出
k=4時,直接break退出,s值無變化
k=3時,case 3:無執行語句,也沒有break,所以繼續執行case 4:break;,s值無變化
k=2時,s+=2;後s為3,break退出k=1時,case 1:無執行語句,繼續執行case 5:s++;break;s值為4
k=0時,case 0:無執行語句,繼續執行case 2:s+=2;break;s值為6
3樓:牛xx的小
複雜問題簡單化,列個每個迴圈後的結果表就行了:
k opr s
5 s++ 1
432 s+=2 3
1 s++ 4
0 s+=2 6
4樓:軒轅采薇
嘿嘿, 你不妨在你的程式中除錯一下看看, 其實當從error呼叫menu的時候n好像被前面的東西賦值了吧
你可以採用一種方式就是在error函式中新增如下**就解決問題char tmp;
while ((tmp=getchar()) != '\n')
c語言中選單裡switch語句裡形成迴圈輸入的問題(求高人解答)
5樓:匿名使用者
嘿嘿, 你不妨在你的程式中除錯一下看看, 其實當從error呼叫menu的時候n好像被前面的東西賦值了吧
你可以採用一種方式就是在error函式中新增如下**就解決問題char tmp;
while ((tmp=getchar()) != '\n')
6樓:匿名使用者
我感覺錯誤是在你在error()中呼叫了menu()方法,這樣會構成乙個遞迴。建議的程式結構如下:
這是典型的提示選單響應程式。
建議這樣改:
scanf("%d",&n);
while(d!=0)//switch
scanf("%d",&n);
}//end of while
7樓:匿名使用者
把scanf換成getch(),其作用是從鍵盤讀入乙個字元(不用按回車),注意要包含標頭檔案
8樓:匿名使用者
scanf("%d",&n); 後加乙個getchar();就可以解決了
c語言題,當break出現在迴圈體內的switch語句體內時,其作用是跳出該switch語句體,並
9樓:都是捕風丶
這句話給的資訊是 switch語句體在 迴圈體內,那麼switch中的break就只起到跳出switch的作用,然後接著進行迴圈體的下乙個語句。並不是結束迴圈體
10樓:東風冷雪
只是跳出switch
並沒有終止迴圈進行.和迴圈扯不上關係。
c語言中選單裡switch語句裡形成迴圈輸入的問題(求高人解答)
嘿嘿,你不妨在你的程式中除錯一下看看,其實當從error呼叫menu的時候n好像被前面的東西賦值了吧 你可以採用一種方式就是在error函式中新增如下 就解決問題char tmp while tmp getchar n 我感覺錯誤是在你在error 中呼叫了menu 方法,這樣會構成乙個遞迴。建議的...
c語言for迴圈 一道題求解析,C語言for迴圈 一道題求解析
的優先順序比 的優先順序高些,所以是先自加,然後取餘,最後才是比較 還有乙個要提醒的是,mian 函式前面一定要帶上int,當然void也可以通過編譯,但是void不符合標準,這些雖然是小問題也是要注意的,另外你的第一行 就錯了,應該是 include 夜 逍遙 if x 2 0 等價於 if x ...
c語言do迴圈,C語言do迴圈
inf 殷志民 沒有do迴圈,只有do while迴圈 while迴圈和for迴圈,因此如果你是用do while迴圈,do和while兩者是密不可分的,do裡面描述了你在不斷的重複做什麼事,而while告訴編譯器下一次重複進入迴圈的條件是什麼,如果沒有while的話,整個迴圈的思想就少了一部分,也...