1.for循環(huán)
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
{
語(yǔ)句塊
}
表達(dá)式1:表示的是初始化條件;
表達(dá)式2:循環(huán)條件
表達(dá)式3:自增或自減
for循環(huán)中三個(gè)表達(dá)式都可以省略,但分號(hào)必須保留。
- 示例:計(jì)算1+2+3+...+100
#include
/*
計(jì)算1+2+3+...+100
*/
int main()
{
int i;
int sum=0;
for(i=1;i<=100;i++)
{
printf("i=%dn",i);
sum+=i;//sum=sum+i;
}
printf("sum=%dn",sum);
}
1.1 for循環(huán)嵌套
#include
int main()
{
int i,j;
int cnt=0;
for(i=0;i3;i++)//i=0,1,2
{
for(j=0;j5;j++)//j=0,1,2,3,4
{ //j=0,1,2,3,4
cnt++;
printf("第%d次循環(huán):i=%d,j=%dn",cnt,i,j);
if(j==2)break;/*break跳出當(dāng)前循環(huán)*/
}
}
return 0;
}
[wbyq@wbyq 123]$ gcc main.c
[wbyq@wbyq 123]$ ./a.out
第1次循環(huán):i=0,j=0
第2次循環(huán):i=0,j=1
第3次循環(huán):i=0,j=2
第4次循環(huán):i=1,j=0
第5次循環(huán):i=1,j=1
第6次循環(huán):i=1,j=2
第7次循環(huán):i=2,j=0
第8次循環(huán):i=2,j=1
第9次循環(huán):i=2,j=2
注意:break只能跳出一層循環(huán)
2.while循環(huán)
while(表達(dá)式)
{
語(yǔ)句塊
}
- 示例:2+4+6+8...+100
#include
/*
示例:2+4+6+8...+100
*/
int main()
{
int i=2;
int sum=0;
while(i<=100)
{
sum+=i;
i+=2;
}
printf("sum=%dn",sum);
}
3.do..while循環(huán)
do
{
語(yǔ)句塊
}while(表達(dá)式);
while和do...while區(qū)別:while循環(huán)條件為真才能執(zhí)行里面的語(yǔ)句塊,do...while先執(zhí)行一次語(yǔ)句塊,再判斷條件。
4.循環(huán)控制語(yǔ)句
控制語(yǔ)句 | 描述 |
break語(yǔ)句 | 終止循環(huán)或switch語(yǔ)句,程序?qū)?zhí)行緊接著循環(huán)或switch的下一條語(yǔ)句 |
continue語(yǔ)句 | 立刻停止本輪循環(huán),重新開(kāi)始下輪循環(huán) |
goto語(yǔ)句 | 將控制跳轉(zhuǎn)到被標(biāo)記的語(yǔ)句。不太建議程序中使用goto語(yǔ)句 |
4.1 break語(yǔ)句
C語(yǔ)言中break語(yǔ)句有以下兩種用法:
①用于循環(huán)語(yǔ)句中,當(dāng)break語(yǔ)句出現(xiàn)在一個(gè)循環(huán)內(nèi)時(shí),循環(huán)會(huì)立即終止,且程序流將繼續(xù)執(zhí)行緊接著循環(huán)的下一條語(yǔ)句。
②用于switch結(jié)構(gòu)中,它可用于終止switch語(yǔ)句中的一個(gè)case。
如果使用的是嵌套循環(huán)(即一個(gè)循環(huán)內(nèi)嵌套另一個(gè)循環(huán)), break語(yǔ)句會(huì)停止執(zhí)行其所在的那層循環(huán),然后開(kāi)始執(zhí)行該塊之后的下一行代碼。
4.2 continue語(yǔ)句
C語(yǔ)言中的continue語(yǔ)句有點(diǎn)像 break 語(yǔ)句。但它不是強(qiáng)迫終止, continue會(huì)結(jié)束當(dāng)前循環(huán)中的代碼,強(qiáng)迫開(kāi)始下一次循環(huán)。
對(duì)于for循環(huán),continue語(yǔ)句執(zhí)行后自增語(yǔ)句仍然會(huì)執(zhí)行。
對(duì)于while和do...while循環(huán),continue 語(yǔ)句會(huì)重新執(zhí)行條件判斷語(yǔ)句。
4.3 goto語(yǔ)句
C語(yǔ)言中的goto語(yǔ)句允許把控制無(wú)條件轉(zhuǎn)移到同一函數(shù)內(nèi)的被標(biāo)記的語(yǔ)句。
注意:在任何編程語(yǔ)言中,都不建議使用goto語(yǔ)句。一是因?yàn)樗沟贸绦虻目刂屏麟y以跟蹤,使程序難以理解和難以修改。任何使用goto語(yǔ)句的程序可以改寫(xiě)成不需要使用goto語(yǔ)句的寫(xiě)法。二是goto語(yǔ)句容易破壞原本的代碼結(jié)構(gòu)。
C語(yǔ)言中g(shù)oto語(yǔ)句的語(yǔ)法:
Label:
printf("goto語(yǔ)句使用!n");
.....
語(yǔ)句塊;
...
goto Label:
在這里,label可以是任何除C關(guān)鍵字以外的純文本,它可以設(shè)置在C程序中g(shù)oto語(yǔ)句的前面或者后面。
5.練習(xí)
1.求100以?xún)?nèi)自然數(shù)中偶數(shù)之和。
2.輸出200~400以?xún)?nèi)能被3整除且個(gè)位數(shù)字為6的整數(shù)。
3.計(jì)算:1*2*3+3*4*5+。。。。 +99*100*101 的值。
4.輸出所有水仙花數(shù)。(水仙花數(shù):一個(gè)三位數(shù),它的每個(gè)位上的數(shù)字的3次冪只和等于他本身)
5.排列組合問(wèn)題:一個(gè)口袋中放有12個(gè)球,已知其中3個(gè)是紅色的,3個(gè)是白色的,6個(gè)是黑色的,現(xiàn)在從中任取8個(gè),問(wèn)共有多少種可能的顏色搭配。
6.判斷2~100之間所有素?cái)?shù)。(只能被本身整除的數(shù),比如:3 、7、13。
7.輸出2~1000之間的可逆素?cái)?shù)。
8.打印正三角形和倒三角形。
9.輸出9*9乘法表。
10.韓信點(diǎn)兵:相傳韓信才智過(guò)人,從不直接清點(diǎn)自己軍隊(duì)的人數(shù),只要讓士兵先后以三人一排、五人一排、七人一排地變換隊(duì)形,而他每次只掠一眼隊(duì)伍的排尾就知道總?cè)?數(shù)了。請(qǐng)輸入3個(gè)非負(fù)整數(shù)a,b,c ,表示每種隊(duì)形排尾的人數(shù)(a<3,b<5,c<7),輸出總?cè)藬?shù)的最小值(或報(bào)告無(wú)解)。已知總?cè)藬?shù)不小于10,不超過(guò)100 。
11.有一個(gè)4位數(shù),它的9倍數(shù)恰好是其反序數(shù),求該數(shù)。(反序數(shù)就是將其倒過(guò)來(lái)形參的整數(shù),例1234的反序數(shù)就是4321。)
12.求一個(gè)三位數(shù),該三位數(shù)等于其每個(gè)位數(shù)字的階乘之和。
13.輸出1000以?xún)?nèi)所有的完全數(shù)。(完全數(shù):一個(gè)數(shù)恰好等于它的因子之和。如6的因子為1 2 3,而1+2+3=6)
14.輸出具有abcd=(ab+cd)2性質(zhì)的四位數(shù)。
15.將100元換成1元、5元、10元有多少種換法?
16.百元買(mǎi)白雞問(wèn)題:100塊錢(qián)買(mǎi)100只雞,公雞5塊1只、母雞3塊1只,小雞3只1塊,輸出所有的買(mǎi)法。
17.有一個(gè)數(shù)列:1、1、2、3 、5 、8...
通過(guò)輸入下標(biāo),輸出對(duì)應(yīng)的值,下標(biāo)從1開(kāi)始。例如輸入3,輸出2;輸入5,輸出5;
18.愛(ài)因斯坦出了一道這樣的數(shù)學(xué)題:有一條長(zhǎng)階梯,若每步跨⒉階,則最后剩1階,若每步跨3階﹐則最后剩⒉階,若每步跨5階,則最后剩4階,若每步跨6階則最后剩5階。只有每次跨7階,最后才正好一階不剩。請(qǐng)問(wèn),這條階梯共有多少階?
19.一輛卡車(chē)違反交通規(guī)則,撞人后逃跑。現(xiàn)場(chǎng)有三人目擊事件,但都沒(méi)有記住車(chē)號(hào),只記下車(chē)號(hào)的一些特征(假設(shè)僅為數(shù)字)。
甲說(shuō):牌照的前兩位數(shù)字是相同的;
乙說(shuō):牌照的后兩位數(shù)字是相同的,但與前兩位不同;
丙是位數(shù)學(xué)家,他說(shuō):四位的車(chē)號(hào)剛好是一個(gè)整數(shù)的平方。請(qǐng)根據(jù)以上線(xiàn)索求出車(chē)號(hào)。
20.如果一個(gè)數(shù)恰好等于它的因子之和,則稱(chēng)該數(shù)為“完全數(shù)”。如:6的因子是1、2、3,而6=1+2+3,則6是個(gè)“完全數(shù)”。試求出1000以?xún)?nèi)的全部“完全數(shù)”。
21.誰(shuí)在說(shuō)謊問(wèn)題:張三說(shuō)李四在說(shuō)謊,李四說(shuō)王五在說(shuō)謊,王五說(shuō)張三和李四都在說(shuō)謊。現(xiàn)在問(wèn):這三人中到底誰(shuí)說(shuō)的是真話(huà),誰(shuí)說(shuō)的是假話(huà)?
審核編輯:湯梓紅
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136794 -
關(guān)鍵字
+關(guān)注
關(guān)注
0文章
37瀏覽量
6895 -
循環(huán)語(yǔ)句
+關(guān)注
關(guān)注
0文章
10瀏覽量
4861
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論