關于算法的輸出圖形問題
for(i=1; i<5; i++)
? ? {
? ? ? ??
? ? ? ? for(j=1;j<5;j++ ) ?
? ? ? ? {
? ? ? ? ? ? printf(" "); ? ?
? ? ? ? }
? ? ? ??
? ? ? ? for(k=0;k<2*i-1;k++)?
? ? ? ? {
? ? ? ? ? ? printf("*"); ? /
? ? ? ? }
? ? ? ? printf("\n"); ?
劃線部分求解析,越詳細越好
for(i=1; i<5; i++)
? ? {
? ? ? ??
? ? ? ? for(j=1;j<5;j++ ) ?
? ? ? ? {
? ? ? ? ? ? printf(" "); ? ?
? ? ? ? }
? ? ? ??
? ? ? ? for(k=0;k<2*i-1;k++)?
? ? ? ? {
? ? ? ? ? ? printf("*"); ? /
? ? ? ? }
? ? ? ? printf("\n"); ?
劃線部分求解析,越詳細越好
2015-08-06
舉報
2015-08-06
兄弟,我好心幫你,你要認真全部看完
你這是要輸出直角三角形嗎?如果是,請往下看;如果不是,請看下一段。
直角三角形
先在最后面加一個"}"
for(i=1;i<5;i++)
這個for語句是控制行數的,表示一共要輸出幾行。
i=1表示從第一行開始
i<5表示沒輸完四行時
執行循環體
i++表示循環完一遍后i+1
for(j=1;j<5;j++ ) ?
這個for語句是控制空格數的,表示要輸出幾個空格。
j=1表示將要輸出第1個空格
當j<5時
(<5表示一共要輸出4個空格,則j<5表示當沒輸完四個空格時執行循環體)
輸出一個空格
j++表示循環完一遍后j+1
至于for(k=0;k<2*i-1;k++)?
就是用來控制輸出幾個*號
k=1表示將要輸出的是第1個*
因為k是從0開始,所以<2*i-1表示一共要輸出2*i-1個*
k<2*i-1表示當要輸出的*沒輸完時
輸出*
k++表示k+1
我再講一遍流程:
從第一行開始,
輸出四個空格,
輸出一個*;
到第二行,
輸出四個空格,
輸出三個*;
······
以此類推,最后就會輸出一個直角三角形。(當然,每一行多出了四個空格)
等腰三角形
先把for(j=1;j<5;j++)改成for(j=1;j<5-i;j++)
再在最后面加一個“}”
for(i=1;i<5;i++)
這個for語句是控制行數的,表示一共要輸出幾行。
i=1表示從第一行開始
i<5表示沒輸完四行時
執行循環體
i++表示循環完一遍后i+1
for(j=1;j<5;j++ ) ?
這個for語句是控制空格數的,表示要輸出幾個空格。
j=1表示將要輸出第1個空格
當j<5-i時
(<5-i表示這一行共要輸出的空格數,則j<5表示當沒輸完5-i個空格時執行循環體)
輸出一個空格
j++表示循環完一遍后j+1
至于for(k=0;k<2*i-1;k++)?
就是用來控制輸出幾個*號
k=1表示將要輸出的是第1個*
因為k是從0開始,所以<2*i-1表示一共要輸出2*i-1個*
k<2*i-1表示當要輸出的*沒輸完時
輸出*
k++表示k+1
我再講一遍流程:
從第一行開始,
輸出三個空格,
輸出一個*;
到第二行,
輸出兩個空格,
輸出三個*;
······
以此類推,最后就會輸出一個等腰三角形。
好了,這是我一個小時的心血,如果你覺得好,就支持一下,鼓勵一下,采納一下吧。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——————一個志同道合者