• ベストアンサー

改行について 1行に何個かづつ表示するとき

よく画面に回数を入力した分だけhello!worldと表示しましょうとありますよね? そのプログラミングはこうなると思うのですが #include<stdio.h> main() { int i,a; printf("回数を入力 → "); scanf("%d",&a); for(i=1;i<=a;i++){ printf(" hello! world "); } }  改行をする場合worldのあとに\nをいれますよね。では例えば 10回表示して1行に3個づつ表示する場合はどうしたらいいですか。 考えてみたのはif(a%3==0) printf("/n");か、if(a<=3) printf("\n"); の2つが思い浮かびました。上の画面のprintf命令のあとに入れてみましたが うまくいきません。こんなことを気にしないほうがいいのかもしれませんが 気になります。どこが間違っているのでしょうか。位置ですか。それとも 2つの案がはじめから違いますか。

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

  • ベストアンサー
  • y_oku
  • ベストアンサー率62% (25/40)
回答No.3

方針は間違っていないのですが、aじゃなくてiだと思います。 ------------------------------ for(i=1; i<=a; i++){ printf("hello world "); if(i%3==0) printf("\n"); } ------------------------------ for文を置き換えてみてください。 動作確認しました。 コピペするほどの書きなおしじゃないですけどね。

noname#1519
質問者

お礼

ありがとうございます!aではなくiでした。早速実行してみました。 こてを応用して別の問題を考えているのですがまた行き詰まっていしまいました。 もしお時間があればまた教えてください。

その他の回答 (3)

  • Ponn
  • ベストアンサー率25% (14/54)
回答No.4

お!そのとおり! if(i%3==0) printf("Hello!world \n"); ですよね。 aは変わらないじゃないですか! 相変わらずの馬鹿でございます。(笑)

noname#1519
質問者

お礼

わざわざ2度目に訂正の回答入れてくださりありがとうございました。うまくいきましたよ。しかしこれを応用するとまたま失敗してしまいました。めげずにがんばりますのでまた質問をしたときには見てやってください。

  • hohihohi
  • ベストアンサー率34% (23/66)
回答No.2

if で判断するのは a でなくて i ではありませんか?

noname#1519
質問者

お礼

そのとおりでした。こんな初歩的な失敗だなんて。C言語は難しいですが うまく実行できたら楽しいですね。

  • Ponn
  • ベストアンサー率25% (14/54)
回答No.1

if(a%3==0) printf("Hello! world \n"); ではだめなのでしょうか?