09/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'); //改行
}
テストしてないけどまあ大丈夫じゃね?