- ベストアンサー
改行について 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つの案がはじめから違いますか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
方針は間違っていないのですが、aじゃなくてiだと思います。 ------------------------------ for(i=1; i<=a; i++){ printf("hello world "); if(i%3==0) printf("\n"); } ------------------------------ for文を置き換えてみてください。 動作確認しました。 コピペするほどの書きなおしじゃないですけどね。
その他の回答 (3)
- Ponn
- ベストアンサー率25% (14/54)
お!そのとおり! if(i%3==0) printf("Hello!world \n"); ですよね。 aは変わらないじゃないですか! 相変わらずの馬鹿でございます。(笑)
お礼
わざわざ2度目に訂正の回答入れてくださりありがとうございました。うまくいきましたよ。しかしこれを応用するとまたま失敗してしまいました。めげずにがんばりますのでまた質問をしたときには見てやってください。
- hohihohi
- ベストアンサー率34% (23/66)
if で判断するのは a でなくて i ではありませんか?
お礼
そのとおりでした。こんな初歩的な失敗だなんて。C言語は難しいですが うまく実行できたら楽しいですね。
- Ponn
- ベストアンサー率25% (14/54)
if(a%3==0) printf("Hello! world \n"); ではだめなのでしょうか?
お礼
ありがとうございます!aではなくiでした。早速実行してみました。 こてを応用して別の問題を考えているのですがまた行き詰まっていしまいました。 もしお時間があればまた教えてください。