1樓:風灬清灬雲淡
迴圈巢狀也是依次執行語句的,這是乙個雙重迴圈巢狀,是在最外面那層迴圈裡面多了一層迴圈,只是這一層有兩個迴圈。這個程式會先打乙個換行,然後列印空格,空格的個數就是迴圈的次數,然後列印*,個數也是迴圈的次數,然後開始下一次整體迴圈,每一次都是這樣的,直到最外層迴圈迴圈完畢。
2樓:
for(j=0;j<5-i;j++)
printf("%c",' ');
與for(k=0;k<=2*i;k++)
printf("%c",'*');
是兩條語句,分開執行的,最外層每執行一次迴圈,裡面的這兩句都要全部執行。
如,當最外層迴圈執行到第i=3時,那麼,
for(j=0;j<5-3;j++)
printf("%c",' ');輸出2個空格然後再執行
for(k=0;k<=2*3;k++)
printf("%c",'*');輸出7個『*』
輸出的結果就是 空格空格*******
3樓:月時微
這不是三重迴圈,是二重迴圈
第二個與第三個是並列的,而非巢狀關係
第二個迴圈完全執行完後才執行第三個迴圈
結果為先輸出五個空格,再輸出五個*
如果要輸出輸出空格*空格*空格*空格*空格*#include "stdio.h"
void main()}}
4樓:程式猿3號
你的順序結構沒有搞明白,
首先執行外層迴圈
for(i=0; i<5; i++)
這裡執行第一次迴圈,進入迴圈體:
printf("\n");
for(j=0;j<5-i;j++) //1. 到這裡,又是乙個迴圈,所以要執行這個迴圈體,注意這還是在外層迴圈(大迴圈)的第一次迴圈裡。
printf("%c",' '); //執行完了這個,再往下走。
for(k=0;k<=2*i;k++) //2. 上面的執行完了,又執行這個,道理一樣。
printf("%c",'*'); //執行完這個,大迴圈的第一次就算執行完了,接著執行大迴圈的第二次迴圈。然後重複上面的步驟。
5樓:匿名使用者
這個不是三重迴圈,而是在第一層裡欠了兩條迴圈第一層的作用是換行
j層的迴圈式控制「空格」數量k層迴圈式控制*號數量就是先換行然後迴圈輸出「空格」再迴圈輸出*號
6樓:
行號 輸出
1 換行
2 5個空格
3 1個*
4 換行
5 4個空格
6 3個*
7 換行
8 3個空格
9 5個*
10 換行
11 2個空格
12 7個*
13 換行
14 1個空格
15 9個*
c語言中 for迴圈巢狀的運算流程?
7樓:霍瑾相溫
1.for迴圈的一般形式為:
for(表示式1;
表示式2;
表示式3)
2.它的執行過程如下:
1)先求解表示式1。
2)求解表示式2,若其值為真(非0),則執行迴圈體,否則結束迴圈。
3)執行完迴圈體,再求解表示式3。
4)重複執行步驟2)和
3),直到迴圈結束。
注意:表示式1僅在第一次迴圈時求解,以後都不會再執行,可以認為這是乙個初始化語句。
3.for迴圈的執行過程可用下圖表示:
4.比如我們用for迴圈來計算1加到100的值:
#include
intmain()
printf("%d\n",sum);
return0;}
執行結果:
5050
**分析:
1)執行到
for語句時,先給
i賦初值1,判斷
i<=100
是否成立;因為此時
i=1,i<=100
成立,所以執行迴圈體。迴圈體執行結束後(sum的值為1),再計算i++。
2)第二次迴圈時,i
的值為2,i<=100
成立,繼續執行迴圈體。迴圈體執行結束後(sum的值為3),再計算i++。
3)重複執行步驟
2),直到第101次迴圈,因為此時
i的值為101,i<=100
不成立,所以結束迴圈。
c語言的for迴圈巢狀怎麼執行的?
8樓:匿名使用者
1.你的問題直bai接答案:先執行完du所有內迴圈,zhi再執行外迴圈,dao
然後k=i;再進入內專迴圈。內屬迴圈執行完成後再到外迴圈。
2.流程控制:順序,選擇,迴圈(流程控制都看不懂,學程式語言學不會的)。
簡單解析你的問題:
先外迴圈for(i=0(只執行一次);i 3.不懂可以繼續問,不幫你弄懂說明我的理解不深刻。 9樓:連冉家谷之 可以寫成if(i==x),但不能寫成if(i=x) i的確是不可能大於x,但是i>=x是只要滿足i>x或者i=x就能執行的,所以條件寫i>=x和i==x是沒區別的. 10樓:蕭竣閏 外層迴圈執行復一次,制內迴圈執行所有符合條件的次數。 例:for(i=1;i<=5;i++) }i=1時j=1,j=2,j=3,j=4,j=5;即外層迴圈迴圈了一次,內層迴圈了5次。 所以外迴圈共迴圈了5次,內迴圈共迴圈了25次 11樓:匿名使用者 在vc6.0中 for(i=0;i<4;i++)處新增斷點(f9),然後執行到斷點處按f10 除錯執行一直到結束 12樓:匿名使用者 for(i=0第一步;i<4第二部;i++第四步) { 第三步{ 13樓:匿名使用者 用vc6 自己除錯一步步執行下就知道了 14樓:三十褚龍 (4+3+2+1)*(5+4+3+2)=140個 c語言裡if語句可以巢狀for迴圈麼 15樓:聽不清啊 c語言裡if語句 裡是可抄以巢狀for迴圈的(if語句裡可以放c語言裡的任意的執行語句)。 舉例說: char yn; int i; printf("需要列印1到10之間的所有奇數嗎(y/n)?\n"); scanf("%c",&yn); if(yn=='y'||yn=='y') else printf("那就不列印了\n"); 16樓:匿名使用者 當然可以,肯定是你記錯了 比如int n=5,i=0; if(n==5) }else 17樓:詭其辭 記錯了吧?可以巢狀。 18樓:匿名使用者 if 換成while 關於c語言for語句的迴圈巢狀 19樓:鄭桂蘭韶巳 從裡到外。。意思就是 i=0j=0時先迴圈k. 迴圈結束再執行i=0 j=1再迴圈k ...一直這樣下去!~ 從裡到外。意思就是 i 0 j 0時先迴圈k.迴圈結束再執行i 0 j 1再迴圈k 一直這樣下去! for i 0 i 2 i for j 0 j 2 j for k 0 k 2 k 要是這樣看的話會不會好理解些,從裡到外。 意思是 k 的for 語句迴圈的次數 k j,而 j 迴圈的次數 j i ... if語句相關 if語句的括號內可以加任意語句,但是不能有分隔符。可以用 來進行邏輯語句的判斷 若是包含結構,則關係如下 if a 則意思為如果滿足a,則對b進行判斷。如果滿足b,則對c進行判斷。如果滿足c,則執行語句d c語言對巢狀if語句的規定是 else總是與 配對 答案是d,其前面最近的尚未配... 噁心一點可以用遞迴實現迴圈,雖然遞迴的開銷要大得多 int sum int val int main 可以,一種是 start sum n if n 100 n goto start 一種是遞迴 為啥偏偏用if呢?再說只用if是不行的,用for迴圈,或者goto,或者while都可以啊 額 不行 i... 是的,區域性變數會新定義一次,不過僅侷限於區域性變數 全域性變數和靜態變數都是全域性的,要是還沒學暫時不用管 並不能說是 同時 應該說是 同樣 時間上肯定是按照呼叫的先後順序的。遞迴確實會讓程式變慢,但只是相對於不需要遞迴的等價 而且原因也不是記憶體分配導致的,而是因為函式呼叫產生的。這個遞迴呼叫怎... 迴圈列印的原因是因為你根本沒有清空 scanf的緩衝區,導致第一次輸入以後就會一直有第一次輸入的資料在快取裡面 加上你的迴圈又沒有結束條件所以導致他會一直列印 通過scanf輸入的字元都會暫時存在輸入緩衝區中,你輸入a回車,然後它首先從緩衝區中讀a,匹配到a,然後輸出a換行,然後繼續從緩衝區中讀讀到...關於c語言for語句的迴圈巢狀,關於C語言for語句的迴圈巢狀
C語言中if語句的巢狀怎理解,C語言中三個if語句的巢狀怎理解
c語言能不能用if語句實現迴圈結構
c語言函式的遞迴呼叫,C語言的函式巢狀呼叫與函式遞迴呼叫有什麼區別
C語言迴圈的問題,C語言迴圈的乙個問題