Hi!這里是漁火。今天我們來學校C語言中的循環結構。循環結構是結構化程序設計中的基本結構之一。循環結構在程序設計中的應用很普遍,幾乎所有具有實用價值的應用程序中都包含著循環結構。循環結構的特點是,可以完成有規律的、需要重復計算或處理的任務。C語言提供了for語句、while語句和do-while三種循環語句。我們來看一個用到循環結構的程序設計。
【1】假設今年我國的人口總數為13億,若按每年2%增長,計算從現在開始10年內每年人口的數量。
#include運行結果如下:#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年后,人數為:%.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年后,人數為:13.26億 2年后,人數為:13.53億 3年后,人數為:13.80億 4年后,人數為:14.07億 5年后,人數為:14.35億 6年后,人數為:14.64億 7年后,人數為:14.93億 8年后,人數為:15.23億 9年后,人數為:15.54億 10年后,人數為:15.85億
分析:程序中的for循環控制語句中,年份year的初始值為1,終值為10,增量用year++實現。
{ number=n*pow((1+rate),year); printf("%2d年后,人數為:%.2f億 ",year,number); }是需要重復執行的語句,稱為循環語句。在重復執行的過程中,使用了同一個計算公式,但年份year每次遞增1,因此計算出的人口數量number會不同。
for語句是C語言提供的功能強大、使用廣泛的一種循環結構,不僅可以解決循環次數未知的循環問題,特別適合解決循環次數已知的循環問題。for語句的一般形式為:for(表達式1:表達式2:表達式3) 循環體語句;
1、可以應用于計數型的循環。格式是:for(循環變量賦初值;循環條件,循環變量增量) 循環體語句;
說明:循環變量賦初值是一個賦值語句,用于給循環變量賦初值;循環條件是一個關系表達式,決定何時終止循環;循環變量增量決定循環變量在完成一次循環后如何變化。三部分之間以”;“隔開。
【2】輸入一個正整數,求n!。
#include1、運行結果如下://輸入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語句的一般形式中省略表達式1,格式為:for(;表達式2;表達式3) 循環體語句;。
說明:省略表達式1時,可以將循環變量賦初值放在for之前。注意,此時不能省略第一個”;“。
3、for語句的一般形式中省略表達式2,格式為:for(;表達式1;;表達式3) 循環體語句;。
說明”省略表達式2時,表示不對循環進行控制,這時如果沒有其他處理的話。會形成死循環。應避免這樣使用for結構。
4、for語句的一般形式中省略表達式3,格式為:for(;表達式1;表達式2) 循環體語句;。
說明:省略表達式3時,可以在循環體語句中加入修改循環變量的值的語句。
5、for語句的一般形式中表達式1和表達式3也可以是逗號表達式。
6、for語句的一般形式中表達式2 的值只要非0,就執行循環體。
7、for語句的一般形式中循環體語句可以省略。
for使用循環例子。
【編寫程序,輸入10個數,輸出其中的最大值】
#include//2023.2.4漁火 Linux迷 www.linuxmi.com int main() { int i; float x,max; printf("請輸入第1個數:"); scanf("%f",&x); max=x; for(i=1;i<=9;i++) { printf("請輸入第%d個數",i+1); scanf("%f",&x); if(x>max) max=x; } printf("10個數的最大值是:%.0f",max); //2023.2.4漁火 Linux迷 www.linuxmi.com return 0; }
分析:這是典型的最值問題,求解的思路是:定義變量max存放最大數,將輸入的第一個數賦給max作為最大數,在后續循環中,每輸入一個數,都與max進行比較,若比max大,則將其賦給max,循環結束后,變量max中即為最大數。
【編寫程序,輸出所有的水仙花】
#include運行結果如下://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個數字,將其組合成一個整型數并輸出】
#include運行結果如下://2023.2.4漁火 Linux迷 www.linuxmi.com int main() { int n=0,i; char ch; printf("輸入3個數字:"); 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語言
+關注
關注
180文章
7604瀏覽量
136692 -
程序
+關注
關注
117文章
3785瀏覽量
81004 -
變量
+關注
關注
0文章
613瀏覽量
28360 -
for
+關注
關注
0文章
44瀏覽量
15811 -
循環結構
+關注
關注
0文章
22瀏覽量
7723
原文標題:從零開始跟我學 C 語言之循環結構(上)
文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
跟我學C語言之順序結構(上)
hi!這里是漁火。今天我們來講講 C 語言的順序結構。所謂順序結構就是按照程序代碼的書寫順序,自上而下依次執行。我們來看一個例子,感受下順序結構
發表于 02-02 10:06
?573次閱讀
《從零開始學電路基礎》(從零開始學電子技術叢書)
電氣控制與PLC技術].劉建清.掃描版.pdf[從零開始學電子測量技術].李建清.掃描版.pdf[從零開始學CPLD和Verilog.HDL編程技術].李建清.掃描版.pdf[
發表于 06-05 23:12
《從零開始學電子》叢書全套網盤分享
】從零開始學模擬電子技術鏈接:https://pan.baidu.com/s/13rp09WUy3z_CZMJEZMrzkA提取碼:othe【從零開始學電子叢書】
發表于 06-28 18:45
從零開始學單片機C語言.haozip02
從零開始學單片機C語言.haozip02,論壇只允許上傳小于20M的壓縮包,
總共分兩卷,需要下載兩個壓縮包才能解壓成功。
發表于 08-16 18:54
?0次下載
從零開始學單片機C語言.haozip01
從零開始學單片機C語言.haozip01,論壇只允許上傳小于20M的壓縮包,
總共分兩卷,需要下載兩個壓縮包才能解壓成功。
發表于 08-16 19:37
?0次下載
從零開始跟我學C語言之分支結構(上)
今天我們來講分支結構。計算機在執行程序時,通常都是按照語句的書寫順序執行的,但在許多情況下需要根據條件選擇所要執行的語句,這就選擇所要的語句。C語言中用于實現分支結構的控制語句主要有:
評論