課程
/后端開發(fā)
/C
/C語言入門
不明白循環(huán)的條件和內(nèi)容,它怎么能輸出這個正三角的呢。請詳細說明一下。
2017-08-28
源自:C語言入門 4-12
正在回答
循環(huán)執(zhí)行順序是外循環(huán)執(zhí)行一次,內(nèi)循環(huán)要完成一次整個循環(huán)。本題有一個外循環(huán)和兩個并列的內(nèi)循環(huán),所以
外循環(huán)for(i... 執(zhí)行一次,兩個內(nèi)循環(huán)for(j...、for(k... 分別要完成一次完整循環(huán)。
for(j... ——完成*前的空格輸出,根據(jù)最終輸出圖形可知,每行前面空格逐一減少,即for(i... 每換一次行,for(j... 的循環(huán)總數(shù)需減1,直到減至1后停止循環(huán);
for(k... ——完成*輸出,根據(jù)最終輸出圖形可知,每行輸出*逐一增加二,即for(i... 每換一次行,for(k... 的循環(huán)總數(shù)需增2,直到增至7后停止循環(huán);
for(i... ——完成換行,根據(jù)最終輸出圖形可知,需換4次行(3次也可),所以for(i... 需循環(huán)4次,并且需在執(zhí)行完兩個內(nèi)循環(huán)之后執(zhí)行換行;
i為行數(shù),j為每行*號前面空格數(shù),k為每行*數(shù);從最終輸出圖形中分別總結j跟i和k跟i的關系:
i ?j ?k
1 ?4 ?1
2 ?3 ?3
3 ?2 ?5
4 ?1 ?7
j和i的關系,j=5-i;
k和i的關系,k=(2*i)-1;
于是得:
#include <stdio.h>
int main(){
int i,j,k;
for(i=1;i<5;i++){
for(j=1;j<=5-i;j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
return 0;
qq_麒麟_7 提問者
空格不是\t嗎
for(i=1;i<5;i++)意思是有4次循環(huán),輸出4次
for(j=1;j<=5-i;j++)意思是每行要輸出多少空格
for(k=1;k<=2*i-1;k++)意思是每行輸出空格后的*的個數(shù)
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
4 回答多重循環(huán)的問題
1 回答多重循環(huán)問題
1 回答例題多重循環(huán)的問題
6 回答多重循環(huán)小問題
1 回答多重循環(huán)的習題,
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2017-08-28
循環(huán)執(zhí)行順序是外循環(huán)執(zhí)行一次,內(nèi)循環(huán)要完成一次整個循環(huán)。本題有一個外循環(huán)和兩個并列的內(nèi)循環(huán),所以
外循環(huán)for(i... 執(zhí)行一次,兩個內(nèi)循環(huán)for(j...、for(k... 分別要完成一次完整循環(huán)。
for(j... ——完成*前的空格輸出,根據(jù)最終輸出圖形可知,每行前面空格逐一減少,即for(i... 每換一次行,for(j... 的循環(huán)總數(shù)需減1,直到減至1后停止循環(huán);
for(k... ——完成*輸出,根據(jù)最終輸出圖形可知,每行輸出*逐一增加二,即for(i... 每換一次行,for(k... 的循環(huán)總數(shù)需增2,直到增至7后停止循環(huán);
for(i... ——完成換行,根據(jù)最終輸出圖形可知,需換4次行(3次也可),所以for(i... 需循環(huán)4次,并且需在執(zhí)行完兩個內(nèi)循環(huán)之后執(zhí)行換行;
i為行數(shù),j為每行*號前面空格數(shù),k為每行*數(shù);從最終輸出圖形中分別總結j跟i和k跟i的關系:
i ?j ?k
1 ?4 ?1
2 ?3 ?3
3 ?2 ?5
4 ?1 ?7
j和i的關系,j=5-i;
k和i的關系,k=(2*i)-1;
于是得:
#include <stdio.h>
int main(){
int i,j,k;
for(i=1;i<5;i++){
for(j=1;j<=5-i;j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
return 0;
}
2017-08-28
空格不是\t嗎
2017-08-28
for(i=1;i<5;i++)意思是有4次循環(huán),輸出4次
for(j=1;j<=5-i;j++)意思是每行要輸出多少空格
for(k=1;k<=2*i-1;k++)意思是每行輸出空格后的*的個數(shù)