• ベストアンサー

配列と反復の組み合わせ、ファイルの入出力

C言語初心者です。 どうしても分からないので投稿しました。 たとえば、 ==読み込むファイル== x 2 3 5 7 9 ・・・ 17 ==== という、xの値が10通りある読み込むファイルがあるとします。 このファイルを読み込み、y=a*xという関数でそれぞれのxに対するyの値を出力したいのです。またこの時、aの値を1~10と変化させたときのyの値も出力したいのです。 出力ファイルのイメージは、 ==出力ファイル== (a_1,x_1)(a_1,x_2)・・・(a_1,x_10) (a_2,x_1)(a_2,x_2)・・・(a_2,x_10) (a_3,x_1)(a_3,x_2)・・・(a_3,x_10)       ・・・       ・・・       ・・・ (a_9,x_1)(a_9,x_2)・・・(a_9,x_10) (a_10,x_1)(a_10,x_2)・・・(a_10,x_10) です。 反復、ファイル入出力、二次元配列を用いて作るのだと思うのですが、うまく作ることができません。 ファイル入出力などなしで、xの値を一つ指定し、aの値を1~10まで変化させたときのyの値を表示させるプログラムを作ったのですが、これもまだうまく動きません。 ご教授してもらえたらとても助かります。 よろしくお願いします。 #include <stdio.h> void main(){ double y,a,x; int i; printf("x=\n"); scanf("%lf",&x); for(a=0;a<10;a++){ a=a++; y=a*x; printf("y=%lf\n",y); } }

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

  • ベストアンサー
  • akitaken
  • ベストアンサー率23% (11/47)
回答No.1

まったく自信はないですが、こんなのはどうでしょうか? int j; for(a=0,a<10,a++){ for(j=0,j<10,j++){ printf("y=%lf \n",a*x[j]); }printf("\n"); } なんとなく思っただけですので、専門家にまかせます(笑)

risyu
質問者

お礼

回答ありがとうございます。 参考にさせてもらいます。

その他の回答 (1)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

元データがファイルにある以上ファイルI/Oは使わざるを得ませんが、あとはループだけでなんとかなります。 fopen(), fscanf(), fclose()辺りの使い方を調べてください。 >#1 aの値域が……

risyu
質問者

お礼

ありがとうございます。 fopen(), fscanf(), fclose()を調べながら、もう一度頑張ってみます。

関連するQ&A

専門家に質問してみよう