• ベストアンサー

ピラミッド表示プログラム。

ピラミッドを表示させるプログラムを考えています。 例えば3段の場合   *  *** ***** っというような表示です。 #include <stdio.h> void spira(int n); main() { int a; printf("段数は:"); scanf("%d",&a); spira(a); } void spira(int n) { int i,j=1,a,b,k; for(a=n;a>0;a--){ for(b=a-1;b<=n;b--){ printf(" "); } k=(j-1)*2+1; for(i=1;i<=k;i++){ printf("*"); } j++; printf("\n"); } } このように考えてみたのですが、無限ループになって表示できません。 どこが悪いでしょうか? 無限ループの原因はどうやったら解消されるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

yoppiiさんがおっしゃる部分が無限ループの原因だと思います。 この部分を for(b=1;b>=a-1;b++){ にしてみたらどうでしょう?

usui323
質問者

お礼

回答ありがとうございました。 b=1;b<=a-1;b++ とやってみるとうまくいきました!

すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#5537
noname#5537
回答No.1

for(b=a-1;b<=n;b--){ ↑原因はここでしょうね。

usui323
質問者

お礼

回答ありがとうございます。 そうですね、ずっとスペースでループするのでそこがおかしいですね。

すると、全ての回答が全文表示されます。

専門家に質問してみよう