- 締切済み
10個出力で改行したいのですが・・・
#include <stdio.h> main() { int i, n; for( i = 1, n = 0; n < i; i++ ) { if(i%3 == 2 && i%4 == 1 && i<1000 ) { printf("%4d,",i); if(i%10==0) printf("\n"); n++; } } printf("\n"); } このプログラムは、3で割ると2余り、4で割ると1余る自然数で1000より小さいものを小さい順に表示するもので、 一行に10個ずつ表示して改行したいのですが、どうすればいいでしょうか? if文が間違っていると思うのですが・・・
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tsukasa-12r
- ベストアンサー率65% (358/549)
↓こういうことなんじゃないでしょうか? #include <stdio.h> void main(void) { int i, n; n = 0; for( i = 1; i < 1000; i++ ) { if( i%3 == 2 && i%4 == 1 ) { printf("%4d,",i); n++; if( n%10 == 0 ) printf("\n"); } } printf("\n"); }
- subaru130
- ベストアンサー率20% (66/326)
if(i%10==0)の文をif(i=10)に変更してくださいこれでうまくいくと思います。
お礼
回答していただいてありがとうございました。 さっそく修正してみたのですが、 何も変わりませんでした・゜・(PД`q。)・゜・ 問題はif文ではないということなのでしょうか・・・
- koko_u_
- ベストアンサー率18% (459/2509)
>一行に10個ずつ表示して改行したいのですが 1 から 1000 まで回しているループ i とは別に、表示した個数を保存する変数を作成/管理して下さい。
お礼
回答していただいて、どうもありがとうございます。 その方法で一度やってみます!!
お礼
このプログラムを実行してみたところ 見事に、きちんと表示されました!! どうもありがとうございます((*´∀`*)) 自分のプログラムと見比べてみて勉強しなおします!!