1樓:飛貓警長
從上面的**來看,程式的意圖好像是從鍵盤輸入若干個數字,然後輸出它們的和。這種情況一般有兩種解決方法,乙個是在輸入前確定數字個數,另乙個是設定乙個(或多個)特別的數字(或其他字元)作為輸入結束條件。上面的**屬於第二種解決方案,當輸入的數字大於或等於99時,迴圈將結束。
對於不知道迴圈次數的情況,比如可以當輸入非數字時,迴圈結束,下面**僅供參考:
#include
int main (void)
printf ("%d\n", sum);
return 0;}
2樓:我姐是恐龍
score你沒有給初值啊
int sum,score=0;
想結束 用break;
例如for(;;)
於是你輸入$就退出了
3樓:c語言大菜
話說應該是:int sum=0,score;
for(score=0;score<100;score++) \\score 從0增加到99,迴圈100次
還有呼叫system函式要先申明標頭檔案#include "windows.h"
4樓:打死小胖
只能是輸入大於100的數,不然只能修改**。而且程式也有點問題,score沒有初始化
5樓:匿名使用者
你應該設定另乙個計數器在for迴圈裡,如果你是想要計算100個同學的成績的話,就用計數器從1自增到100;用score做計數器是不行的,因為score是你要自己處理的,而for中的計數器一般是讓其自增,不去修改他的
6樓:御阪美琴控
輸入乙個大於100的數
7樓:匿名使用者
你這個程式是錯的,另外請把程式要解決什麼問題先說明白
兩個個關於c語言迴圈跳出的問題?
8樓:匿名使用者
通常在c語言裡面使用的跳轉語句主要有四種:
goto
continue
break
return
先將四種都為你做乙個簡單的介紹:
goto :
用於模組之間的跳轉,e68a8462616964757a686964616f31333262346530次跳轉功能強大,可實現在程式內部任意位置跳轉,呼叫形式為:
a: 模組一;//在這裡a是乙個標示符,常用大寫字母表示,表示跳轉後程式執行的起始位子
模組二在c語言中這種形式的呼叫通常發生在選單的製作上,用於多個模組之間進行切換,可以巢狀使用。但是這種程式設計方式並不提倡使用,在跳轉過程中可能會帶來不可預知的bug。應盡量避免使用。
continue
continue一般用於加速迴圈,一般在迴圈體內部進行呼叫,其功能是:結束本次迴圈,是迴圈快速地進入到下一次迴圈中,比如:
for(;;)
當if條件為真時,迴圈進入下一次;
break
一般用於跳出本迴圈,即跳出break所在的迴圈,哪個迴圈呼叫了break,就跳出哪個迴圈;
比如:while()
} 在這段模板中,for 呼叫了break;當執行到break時跳出for,但是不跳出while,而是繼續執行while迴圈
return
一般的用法 時為了實現返回,返回乙個值或其他複雜型別,都是可以的,
return 一般都用在被呼叫的物件(物件一)裡面,呼叫以後返回到呼叫物件(物件二)即,當物件二呼叫物件一時,如果物件一內部呼叫了return語句,則程式執行返回到,物件二呼叫物件一得下一條語句繼續執行,
比如:(這裡的物件在c語言裡面就是函式)
物件一()
物件二()
當程式執行到物件二時,會呼叫物件一,轉到物件一種去執行,當執行到return時,會返回到物件二中,執行語句二
對於你的提問現給出如下解釋:
第乙個程式段
時對於return的呼叫,呼叫之後,程式會跳出main函式,也就是說return有結束函式呼叫的功能。
第二個程式段:
do while();
是乙個迴圈體,break在迴圈內部呼叫,跳出迴圈,但不跳出if,
一般語言裡面的跳轉都滿足上述規律,但不排除,在特殊的演算法內部特殊的應用
希望你能夠明白
9樓:cpp門徒
第乙個:
return 是肯定能抄跳出 if(***)的,return是返回,遇到baireturn直接du就去函式結尾了。
用break;語句效果肯定不一zhi樣,daobreak;只不過是跳出switch(yyy)函式,然後繼續執行下去。
給個**你清楚下:
#include
void main()
printf ("^_^\n");}}
第二個:
break語句不能跳出if(***);break只是跳出迴圈,而不是要結束函式。
給個例子你能更好的看清楚。
#include
void main()
while ( y );
printf ("^_^\n");}}
10樓:匿名使用者
第乙個:
return 直接
copy跳出函式,break只是跳出迴圈(包括for迴圈while迴圈do-while迴圈和switch),這裡用了return之後都跳出函式了,肯定在if之外,而用break只是跳出那層switch,還是在if裡面的
第二個:
同理,這裡的break只能跳出do-while,還是在if裡面
c語言中關於多個for迴圈的問題 5
11樓:匿名使用者
#include
void main()
12樓:匿名使用者
1、最開抄
始進入的是第一層for迴圈,襲在進入第二層for迴圈,一直bai到最後一層dufor迴圈執行完,再返回上一zhi層for迴圈一次,進入dao下一層迴圈,一直到所有迴圈結束。
2、例如:
for(int i=0;i<5;i++)
printf("\n");
}/*這裡是3層迴圈,第一次是i=0,j=0,l=0,一直l=4;在返回j=1,l=0,一直到l=4;再返回上一層迴圈,直到j=4;再返回i=1,直到i=4結束整個迴圈,結果就是迴圈125次:
(最外層是是對應5組,第二層是對應25行,第三層是對應0—4)*/
13樓:聽不清啊
圖中二層迴圈都是迴圈3次,所以就輸出9個aa
迴圈全部結束後輸出bb一次。
14樓:
這個實際bai上不是 多個for迴圈的問du題,而是乙個語zhi
句的作用範圍dao的問題
當你需要迴圈的語回句只有一句的時答候,就可以寫成這樣
for(i=0,i<3;i++)
printf("aa\n");
如果有多個的話
就需要用大括號括起來
for(i=0,i<3;i++)
括起來的話,這三句都將迴圈三次。
而不論大括號裡括了多少條語句,for迴圈本身也只算乙個語句。
因此,可以分析你剛才那段**
for(i=0;i<3;i++)
for(j=2;j<5;j++)
printf("aa\n");
printf("bb\n");
先看外邊的for ,它沒有使用大括號{} ,因而只將離他最近得一條語句進行迴圈
而這條語句也是乙個for迴圈。 第二個for 迴圈也沒有大括號,因此也只將離他最近得語句進行迴圈。即將printf("aa\n");進行迴圈。
而最後的printf("bb\n");沒有在任何迴圈裡邊,所以只執行一次。
for迴圈的巢狀,從外邊進入裡邊,將裡邊的迴圈當做乙個整體,幾次迴圈執行完畢後,再回過頭來進行外邊迴圈。總的來說,將裡邊的迴圈看做整體,比較有利於理解。
15樓:劉鴻波
你的程式相對於bai下面這段代du碼:
#include
void main()
}printf("bb\n");}執行
zhi順序如下:
i=0:
j=2;printf("aa\n");j++;
j=3;printf("aa\n");j++;
j=4;printf("aa\n");j++;
i=1;
j=2;printf("aa\n");j++;
j=3;printf("aa\n");j++;
j=4;printf("aa\n");j++;
i=3;
j=2;printf("aa\n");j++;
j=3;printf("aa\n");j++;
j=4;printf("aa\n");j++;
跳出dao巢狀迴圈
執行printf("bb\n");
所以版最終的結果是9個
權aa,乙個bb
16樓:
#include
void main()
17樓:匿名使用者
執行的每一步 順序 如下
i=0,i=2,printf("aa\n");
i=0,i=3,printf("aa\n");
i=0,i=4,printf("aa\n");
i=1,i=2,printf("aa\n");
i=1,i=3,printf("aa\n");
i=1,i=4,printf("aa\n");
i=2,i=2,printf("aa\n");
i=2,i=3,printf("aa\n");
i=2,i=4,printf("aa\n");
printf("bb\n");
**這麼寫讓人 能好理解些。
#include
void main()
裡的**
for(j=2;j<5;j++)
}printf("bb\n");//這個print 不屬於任何循答環裡 所以只執行了1次}
18樓:匿名使用者
先是內層迴圈(即j),再迴圈i,因為沒加{}所以迴圈體只有輸出aa那個,最後退出兩個迴圈時才輸出乙個bb,謝謝
19樓:匿名使用者
先執行一
抄次最外層的for語句,然後執行第二層的for語句襲,直到第二層執行完畢bai
,又回到第du一層的for語句執行一次
zhi,再執行第二層,結果是外迴圈的for語句執行3次,第二層的for迴圈執行(5-2)*3=9次,第二層的迴圈每執行一次就輸出乙個aa,所以輸出9個aa,printf("bb\n")是在for語句的外邊,所以只在最後執行一次,for語句如果每次迴圈都要執行一條以上的語dao句就要在語句外邊加花括號,即如果要執行printf("aa\n");printf("bb\n");兩條語句的話就要寫成
這種形式。
20樓:孤高天子龍
裡面那個迴圈執行3乘3次,外面迴圈執行3次。
原理就是裡面迴圈完了,外面迴圈一次。
21樓:匿名使用者
for巢狀,由外到內。第一層for執行一次,就會到第二層for,直到第二層for迴圈結束,開始第一層for的第二次執行,然後就開始第二層的第二次。。。。直到結束
22樓:秒殺
你可以這樣抄理襲解:
for(i=0;i<3;i++)
printf("bb\n"); //這裡會輸出1個「bb」
C語言for迴圈的問題,C語言迴圈問題
一個偽 告訴你真相 我是大圈 一圈跑完,大圈還要跑嗎 要跑 繼續大圈與小圈的迴圈,不要跑 跳出迴圈 多層巢狀也是一樣 我是外圈 跑完了小圈,繼續中圈 中圈已結束 跳出中圈繼續執行外圈。中圈還沒結束 繼續中圈的迴圈 現在中圈也跑完了,再來跑大圈 如果大圈跑完了,該迴圈結束,還沒有的話繼續上面的奔跑,r...
C語言中,關於while迴圈的問題
include int main int argc,char argv 我在解釋一下,昨天沒說清楚。就算你只輸入了乙個a,這個時候scanf掃瞄緩衝區,發現不是整形,所以直接退出,指標仍舊指在a的位置,下次scanf呼叫的時候,指標仍舊指在a這裡,所以scanf不等待你輸入,但是a不是整數,又直接退...
c語言scanf的兩個問題
對於 123abc789 回車 是因為你的輸入控制格式,兩邊是 d,即整數,中間三個是字元。因此輸入的時間是將123賦值給了a,abc分別賦值給bcd,789賦值給d 對於 123 回車 abc789 回車 首先必須知道,利用scanf輸入的時間,回車是作為有效的字元輸入的這樣其實是a 123,b ...