作者littlecc (small)
看板C_and_CPP
標題[問題] C語言倒三角形
時間Mon May 30 23:28:23 2016
想請問像這種的倒三角形要怎寫?
16 15 14 13 12 11 10
9 8 7 6 5
4 3 2
1
今天用了迴圈寫了很多次但是結果都不正確
所以想請問版上前輩
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.26.53.237
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1464622105.A.7AF.html
4F:→ Hazukashiine: p.s. 其實這三個輸出 trailing 的處理有一點點不同 05/31 00:06
5F:→ Hazukashiine: 然後下次可以先貼上你目前為這個題目做了什麼努力zz 05/31 00:09
好的不好意思
然後我現在想要加入scanf可以自己選擇層數
#include <stdio.h>
void inv_tri(int);
int main (void)
{
int num;
printf("輸入層數:");
scanf("%d",&num);
inv_tri(num);
return 0;
}
void inv_tri(int num)
{
int i;
for (i = num * num; i > (num - 1) * (num - 1); i--)
printf("%2d ", i);
printf("\n%*.s" , 3 * (5 - num), "");
if (num > 0)
inv_tri(num - 1);
}
發現層數會跑掉
沒辦法達到我想要的
例如:
9 8 7 6 5
4 3 2
1
或是
25 24 23 22 21 20 19 18 17
16 15 14 13 12 11 10
9 8 7 6 5
4 3 2
1
因為我現在還是有點沒辦法理解這個迴圈的意思
※ 編輯: littlecc (114.26.53.237), 05/31/2016 00:38:52
7F:→ Hazukashiine: 原先的 indent 是寫死的 5 - num -> ind - num + 1 05/31 00:47
H大我大概了解了
然後剛剛想了一下
發現直覺解比較容易思考出來
非常感謝你!
※ 編輯: littlecc (114.26.53.237), 05/31/2016 00:52:30
8F:→ morewatertw: 5(9-8-7-6-5),3(4-3-2),1 (1) 遞減印出數字 05/31 08:17
9F:→ testPtt: 這種問題用陣列去解比較方便 05/31 11:11