亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

這個程序怎么運行啊

#include <stdio.h>
int main()
{
??? int i, j, k;
??? for(i=1; i<5; i++)
??? {
??????? /* 觀察每行的空格數量,補全循環條件 */
??????? for(??? j=i;j<5 ;? j++? )?
??????? {
??????????? printf(" ");??? //輸出空格
??????? }
??????? /* 觀察每行*號的數量,補全循環條件 */
??????? for( k=0 ;k< 2*i-1;? k++??? )
??????? {
??????????? printf("*");?? //每行輸出的*號
??????? }
??????? printf("\n");???? //每次循環換行
??? }
??? return 0;
}

正在回答

4 回答

#include?<stdio.h>
int?main()
{
????int?i,?j,?k;??????????????????????//定義三個int類型的數
????for(i=1;?i<5;?i++)????????????????//外循環i初始值1,循環5次
????{?
/*?觀察每行的空格數量,補全循環條件?*/
????????for(????j=i?;??j<5?;??j++?)??//內循環1,j=i表示j受i約束,即第一次循環j=1,第二次j=2?,...?
????????{
????????????printf("?");??//輸出空格?//j=1時輸1個空格整個(外)循環結束4個,j=2時整個(外)循環結束3個
????????????
????????}
????????//printf(j);
????????/*?觀察每行*號的數量,補全循環條件?*/
????????for(?k=0?;??k<i*2-1;??k++)???//k<i*2-1第一次循環i=1,k=1*2-1=1,第二次等于3,...
????????{
????????????printf("*");???//每行輸出的*號,第一次循環輸出1*,二次3*,三次5*
????????}
????????
????????printf("\n");?????//每次循環換行
????}
????return?0;
}

這個程序難理解的地方大概就是第一個內循環 j=i 和第二個內循環k=i*2-1,實例過程如下(空格用s表示,換行n):

第一次循環:(外循環下同)

ssss*n ? ? ? ? ? ? ? ? ? 內循環 1,j=1,1<5,輸出4個空格,內循環2,k=1*2-1=1,輸出1*

第二次循環:

ssss*n???????????????????????? ? ?

sss***n ? ? ? ? ? ? ? ? ? 內循環1(第2次,下同),j=2,2<5,輸出3個空格,內循環2(第二次,下同),k=3 ? ? ? ?

第三次循環

ssss*n

sss***n

ss*****n ? ? ? ? ? ? ? ??內循環1(3),j=3,3<5,輸出2個空格,內循環2(3),k=5

第四次循環

ssss*n

sss***n

ss*****n

s*******n ? ? ? ? ? ? ? 內循環1(4),j=4,4<5,輸出1個空格,內循環2(4),k=7?

整個循環結束 ?#這是我的筆記 ? ? ?

4 回復 有任何疑惑可以回復我~
#1

qq_我的烏托邦_0

那個k=0 k<2*i-1 有點看不懂
2016-01-20 回復 有任何疑惑可以回復我~

/* Note:Your choice is C IDE?

? ?*

? ***

?*****

*******

?*****

? ***

? ?*

*/

#include "stdio.h"

void main()

{

? ? int i,j,j1=5,k;//i:行, j:*的數量, k:空格數量

? ? for(i=1;i<5;i++)

? ? ? {for(k=i;k<4;k++)

? ? ? ? printf(" ");

? ? ? ? for(j=1;j<=i*2-1;j++)

? ? ? ? ?printf("*");

? ? ? ? printf("\n");

? ? ? }

? ? for(i=1;i<4;i++)

? ? ? {?

? ? ? for(k=i;k>0;k--)

? ? ? ?printf(" ");

? ? ? for(j=j1;j>0;j--)

? ? ? ?printf("*");

? ? ? j1-=2;//保持j能夠以每行少2個

? ? ? printf("\n"); ? ? ? ?

? ? ? }

}

? ? ?

? ? ??

0 回復 有任何疑惑可以回復我~
#1

Any_one

最后那半段看不懂誒
2015-12-30 回復 有任何疑惑可以回復我~

根據循環輸出空格 和*號啊

0 回復 有任何疑惑可以回復我~

嵌套循環呢,外面的循環控制行i=1,表示第一行,然后進行里面,內循環控制輸出空格和*,第一個內循環輸出一行的空格,第二個內循環控制輸出一行的*。里面的循環結束后就輸出好了一行,然后再到了外循環,i=2到第二行循環,以此類推。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

這個程序怎么運行啊

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號