C語言switch迴圈題就解答

時間 2021-10-17 04:51:58

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的話,整個迴圈的思想就少了一部分,也...