• 締切済み

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文が間違っていると思うのですが・・・

みんなの回答

回答No.3

↓こういうことなんじゃないでしょうか? #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"); }

akkakkakk
質問者

お礼

このプログラムを実行してみたところ 見事に、きちんと表示されました!! どうもありがとうございます((*´∀`*)) 自分のプログラムと見比べてみて勉強しなおします!!

  • subaru130
  • ベストアンサー率20% (66/326)
回答No.2

if(i%10==0)の文をif(i=10)に変更してくださいこれでうまくいくと思います。

akkakkakk
質問者

お礼

回答していただいてありがとうございました。 さっそく修正してみたのですが、 何も変わりませんでした・゜・(PД`q。)・゜・ 問題はif文ではないということなのでしょうか・・・

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>一行に10個ずつ表示して改行したいのですが 1 から 1000 まで回しているループ i とは別に、表示した個数を保存する変数を作成/管理して下さい。

akkakkakk
質問者

お礼

回答していただいて、どうもありがとうございます。 その方法で一度やってみます!!

関連するQ&A