- 43 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 23:01:20 ]
- >>40
別解だが山を二つに区切っちゃおう というのがあるよ 頂点の*の右側を垂直に直線を下ろし、それを境界として考える 上からx行目の空白は10-x個、右側の*はx個、左側の*はx-1個 int i,j,k; // iは空白、jは右側の*、kは左側の* int line; //行数をカウント for(line = 1;line <= 10;line++) { for(i = 10;i > line;i--) printf(" "); //まず空白 for(j = 1;j <= line;j++)printf("*") //左側の個数の*を出力 for(k = 1;k <= line - 1;k++)printf("*") //右側の個数の*を出力 k <= line - 1 に注目 putchar('\n'); //改行 } テストしてないけどまあ大丈夫じゃね?
|

|