Hi!這里是漁火。今天我們來(lái)學(xué)校C語(yǔ)言中的循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)中的基本結(jié)構(gòu)之一。循環(huán)結(jié)構(gòu)在程序設(shè)計(jì)中的應(yīng)用很普遍,幾乎所有具有實(shí)用價(jià)值的應(yīng)用程序中都包含著循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)的特點(diǎn)是,可以完成有規(guī)律的、需要重復(fù)計(jì)算或處理的任務(wù)。C語(yǔ)言提供了for語(yǔ)句、while語(yǔ)句和do-while三種循環(huán)語(yǔ)句。我們來(lái)看一個(gè)用到循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)。
【1】假設(shè)今年我國(guó)的人口總數(shù)為13億,若按每年2%增長(zhǎng),計(jì)算從現(xiàn)在開(kāi)始10年內(nèi)每年人口的數(shù)量。
#include運(yùn)行結(jié)果如下:#include //2023.2.4漁火 Linux迷 www.linuxmi.com int main() { int n=13,year; double number,rate=0.02; for(year=1;year<=10;year++) { number=n*pow((1+rate),year); printf("%2d年后,人數(shù)為:%.2f億 ",year,number); } //2023.2.4漁火 Linux迷 www.linuxmi.com return 0; }
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com gcc linuxmi.c -lm -o linuxmi linuxmi@linuxmi /home/linuxmi/www.linuxmi.com ./linuxmi 1年后,人數(shù)為:13.26億 2年后,人數(shù)為:13.53億 3年后,人數(shù)為:13.80億 4年后,人數(shù)為:14.07億 5年后,人數(shù)為:14.35億 6年后,人數(shù)為:14.64億 7年后,人數(shù)為:14.93億 8年后,人數(shù)為:15.23億 9年后,人數(shù)為:15.54億 10年后,人數(shù)為:15.85億

分析:程序中的for循環(huán)控制語(yǔ)句中,年份year的初始值為1,終值為10,增量用year++實(shí)現(xiàn)。
{ number=n*pow((1+rate),year); printf("%2d年后,人數(shù)為:%.2f億 ",year,number); }是需要重復(fù)執(zhí)行的語(yǔ)句,稱為循環(huán)語(yǔ)句。在重復(fù)執(zhí)行的過(guò)程中,使用了同一個(gè)計(jì)算公式,但年份year每次遞增1,因此計(jì)算出的人口數(shù)量number會(huì)不同。
for語(yǔ)句是C語(yǔ)言提供的功能強(qiáng)大、使用廣泛的一種循環(huán)結(jié)構(gòu),不僅可以解決循環(huán)次數(shù)未知的循環(huán)問(wèn)題,特別適合解決循環(huán)次數(shù)已知的循環(huán)問(wèn)題。for語(yǔ)句的一般形式為:for(表達(dá)式1:表達(dá)式2:表達(dá)式3) 循環(huán)體語(yǔ)句;
1、可以應(yīng)用于計(jì)數(shù)型的循環(huán)。格式是:for(循環(huán)變量賦初值;循環(huán)條件,循環(huán)變量增量) 循環(huán)體語(yǔ)句;
說(shuō)明:循環(huán)變量賦初值是一個(gè)賦值語(yǔ)句,用于給循環(huán)變量賦初值;循環(huán)條件是一個(gè)關(guān)系表達(dá)式,決定何時(shí)終止循環(huán);循環(huán)變量增量決定循環(huán)變量在完成一次循環(huán)后如何變化。三部分之間以”;“隔開(kāi)。
【2】輸入一個(gè)正整數(shù),求n!。
#include1、運(yùn)行結(jié)果如下://輸入10//2023.2.4漁火 Linux迷 www.linuxmi.com int main() { int i,n; double fac; printf("輸入n的值:"); scanf("%d",&n); fac=1; for(i=1;i<=n;i++) fac=fac*i; printf("%d!=%.0f ",n,fac); //2023.2.4漁火 Linux迷 www.linuxmi.com return 0; }

2、for語(yǔ)句的一般形式中省略表達(dá)式1,格式為:for(;表達(dá)式2;表達(dá)式3) 循環(huán)體語(yǔ)句;。
說(shuō)明:省略表達(dá)式1時(shí),可以將循環(huán)變量賦初值放在for之前。注意,此時(shí)不能省略第一個(gè)”;“。
3、for語(yǔ)句的一般形式中省略表達(dá)式2,格式為:for(;表達(dá)式1;;表達(dá)式3) 循環(huán)體語(yǔ)句;。
說(shuō)明”省略表達(dá)式2時(shí),表示不對(duì)循環(huán)進(jìn)行控制,這時(shí)如果沒(méi)有其他處理的話。會(huì)形成死循環(huán)。應(yīng)避免這樣使用for結(jié)構(gòu)。
4、for語(yǔ)句的一般形式中省略表達(dá)式3,格式為:for(;表達(dá)式1;表達(dá)式2) 循環(huán)體語(yǔ)句;。
說(shuō)明:省略表達(dá)式3時(shí),可以在循環(huán)體語(yǔ)句中加入修改循環(huán)變量的值的語(yǔ)句。
5、for語(yǔ)句的一般形式中表達(dá)式1和表達(dá)式3也可以是逗號(hào)表達(dá)式。
6、for語(yǔ)句的一般形式中表達(dá)式2 的值只要非0,就執(zhí)行循環(huán)體。
7、for語(yǔ)句的一般形式中循環(huán)體語(yǔ)句可以省略。
for使用循環(huán)例子。
【編寫程序,輸入10個(gè)數(shù),輸出其中的最大值】
#include//2023.2.4漁火 Linux迷 www.linuxmi.com int main() { int i; float x,max; printf("請(qǐng)輸入第1個(gè)數(shù):"); scanf("%f",&x); max=x; for(i=1;i<=9;i++) { printf("請(qǐng)輸入第%d個(gè)數(shù)",i+1); scanf("%f",&x); if(x>max) max=x; } printf("10個(gè)數(shù)的最大值是:%.0f",max); //2023.2.4漁火 Linux迷 www.linuxmi.com return 0; }

分析:這是典型的最值問(wèn)題,求解的思路是:定義變量max存放最大數(shù),將輸入的第一個(gè)數(shù)賦給max作為最大數(shù),在后續(xù)循環(huán)中,每輸入一個(gè)數(shù),都與max進(jìn)行比較,若比max大,則將其賦給max,循環(huán)結(jié)束后,變量max中即為最大數(shù)。
【編寫程序,輸出所有的水仙花】
#include運(yùn)行結(jié)果如下://2023.2.4漁火 Linux迷 www.linuxmi.com int main() { int num,a,b,c; for(num=100;num<=999;num++) { a=num/100; b=num%100/10; c=num%10; if(num==a*a*a+b*b*b+c*c*c) printf("%5d",num); } //2023.2.4漁火 Linux迷 www.linuxmi.com return 0; }

【由鍵盤輸入3個(gè)數(shù)字,將其組合成一個(gè)整型數(shù)并輸出】
#include運(yùn)行結(jié)果如下://2023.2.4漁火 Linux迷 www.linuxmi.com int main() { int n=0,i; char ch; printf("輸入3個(gè)數(shù)字:"); for(i=1;i<=3;i++) { scanf("%c",&ch); n=n*10+ch-'0'; } printf("%d ",n); //2023.2.4漁火 Linux迷 www.linuxmi.com return 0; }
審核編輯:湯梓紅
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7630瀏覽量
140818 -
程序
+關(guān)注
關(guān)注
117文章
3825瀏覽量
82606 -
變量
+關(guān)注
關(guān)注
0文章
614瀏覽量
28865 -
for
+關(guān)注
關(guān)注
0文章
44瀏覽量
16056 -
循環(huán)結(jié)構(gòu)
+關(guān)注
關(guān)注
0文章
22瀏覽量
7854
原文標(biāo)題:從零開(kāi)始跟我學(xué) C 語(yǔ)言之循環(huán)結(jié)構(gòu)(上)
文章出處:【微信號(hào):Linux迷,微信公眾號(hào):Linux迷】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論