• ベストアンサー

ループ

for(i=0;i<=10;i++){  for(j=0;j<=10;j++){   for(k=0;k<=10;k;;){    for(l=0;l<=10;l;;){              a=1+i;              b=2+j;              c=3+k;              d=4+l;             }            }            }          } という4重ループを作り10000個のデータ(a0.dat,a1.dat・・・)を取りたいのですがどうすればよいですか?よろしくお願いします。

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.4

★『a』~『d』の変数値を『a0.dat』~『a9999.dat』に書き出したいの? ・それならば、次のようになります。 サンプル: char file[ 256 ]; FILE *fp; int i, j, k, l, count = 0; for ( i = 0 ; i < 10 ; i++ ){  for ( j = 0 ; j < 10 ; j++ ){   for ( k = 0 ; k < 10 ; k++ ){    for ( l = 0 ; l < 10 ; l++ ){     a = 1 + i;     b = 2 + j;     c = 3 + k;     d = 4 + l;          sprintf( file, "a%d.dat", count++ );          if ( (fp = fopen(file,"w")) != NULL ){      fprintf( fp, "a = %d\n", a );      fprintf( fp, "b = %d\n", b );      fprintf( fp, "c = %d\n", c );      fprintf( fp, "d = %d\n", d );      fclose( fp );     }    }   }  } } 最後に: ・『for』文のループ条件式で『i <= 10』とすると 11 回ループします。  10 回ならば『i < 10』とします。 ・以上。おわり。

au61
質問者

お礼

ありがとうございました

その他の回答 (3)

noname#39970
noname#39970
回答No.3

a1,a2・・・の数値に相当する部分のカウンタを用意すれば良い ちょっと端折って書くけどこんな。 int cn=0; //...... for(i=0;i<=10;i++){ //........ a=1+j; b=2+j; c=3+k; d=4+l; /* file output ... cnの値を使いファイル名を生成 */ cn++; //.........

au61
質問者

お礼

ありがとうございました

noname#38837
noname#38837
回答No.2

>10000個のデータ(a0.dat,a1.dat・・・)を取りたい というのは? a0.datから値を読み込みたい? a0.datに値を出力したい?              a=1+i;              b=2+j;              c=3+k; この部分、この場所で記述したら たとえば for(l=0;l<=10;l++){ } の間、 c=3+k; を繰り返しますが、毎回kの値が変わりませんが それはいいのですか?

au61
質問者

お礼

ありがとうございます

au61
質問者

補足

ちがいます。分かりにくくてすいません。a,b,cというパラメータを変えてシミュレーションした結果をa0.dat,a1.dat・・・a9999.datという風に記録していきたいのです。

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

何がしたいのかサッパリわからん。 とりあえず、ループが 11*11*11*11 = 14641回まわってることだけわかった。 (k;; とかは k++ のミスタイプ?)

au61
質問者

お礼

ありがとうございました

au61
質問者

補足

for(i=0;i<=10;i++){  for(j=0;j<=10;j++){   for(k=0;k<=10;k++){    for(l=0;l<=10;l++){              a=1+i;              b=2+j;              c=3+k;              d=4+l;             }            }            }          } です。a,b,c,dのパラメータを変えながらシミュレーションしたいのですが

関連するQ&A