• ベストアンサー

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

akitakenの回答

  • ベストアンサー
  • 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
質問者

お礼

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

関連するQ&A

  • 配列とポインタについて

    #include <stdio.h> int main() { char x[3]; char *y; x[0]='a'; x[1]='b'; x[2]='\0'; y="abc"; printf("xの値は%s\n",x); printf("yの値は%s\n",y); } 通常の配列宣言では、このままだと文字列をまとめて 代入できないのに対して、ポインタ変数ならまとめて代入することができるのは何故ですか?そういう仕組みだと言われてしまえば、それまでなんですが・・・

  • ファイル入出力で

    現在ファイル入出力の項目をしているのですが、以下の内容で実行すると エラーが出てどうしても実行できません。主にどこを直せばいいのでしょうか? /* ファイルをコピーするプログラム */ #include <stdio.h> int main(void) { FILE *fin, *fout; char infile[40], outfile[40]; char str[256]; printf("コピー元ファイル = "); scanf("%39s", infile); printf("コピー先ファイル = "); scanf("%39s", outfile); if( (fin = fopen(infile, "r") ) == NULL) { printf("Input file open error.\n"); return 1; } if( (fout = fopen(outfile, "w") ) == NULL) { printf("Output file open error.\n"); fclose(fin); return 1; } while(fgets(str, sizeof(str), fin) != NULL) { fputs(str, fout); } fclose(fin); fclose(fout); return 0; } エラーは FILE 、fin, fout,NULLの未定義です。 よろしくお願いします。

  • 定積分のプログラミングについて

    刻み幅dxを入力し、f(x)=4/(1+x^2)を0~1まで定積分するというプログラムを作ったんですが、なぜか、刻み幅を入力してENTERを押すと、 ずら~~~~~っと無限に結果の文字列が出てきてしまいます。 書いたプログラムを載せるので、間違っている箇所を教えてもらえませんか。お願いします。 #include <stdio.h> #include <math.h> double f(double m); main(){ double x,F,dx; printf("Numerical integration of y=4/(1+x^2).\n"); /*刻み幅の入力*/ scanf("%lf,&dx:"); /*aとbと刻み幅*/ printf("The lowwer bound:0.0\n"); printf("The upper bound:1.0\n"); printf("The meth width:dx\n"); /*関数*/ for(x=0.0;x<1.0;x+=dx) { F=f(x); /*計算結果を出力*/ printf(" f(%lf)= 4/(1+x^2) =%lf\n",x,F); } } double f(double m) { double y; y=4/(1+m*m); return y; }

  • C言語 二分法

    初投稿です。 お恥ずかしながらパソコンが苦手で、Cゲッが難しくてできません。 今回二分法です。 途中まではやったのですができません。 演習 0~1の乱数を12個発生させ,これらの平均をxi,yi とする。(s,tは乱数) xi=1/12(x1i+x2i+....x12i) yi=1/12(y1i+y2i+....y12i) このようなを1000個作り,(xi,yi)で散布図 を作りなさい。またx,yのそれぞれの平均を求 めよ。 この演習で #include<stdio.h> #include<stdlib.h> #include<math.h> #define eps 1.0e-5 float f(double x); void nibuin(void); int main () { int count; double a,b,m; count=0; printf("範囲の左の値を入力してください。\n"); scanf("%lf",&a); printf("範囲の右の値を入力してください。\n"); scanf("%lf",&a); if(count==1000){ printf("収束しませんでした。\n"); exit(1); } } while(!(fabs(a-b)<eps)); printf("解の値は%f\n収束するのに%d回かかりました。"m,count); } float f(double x) { reurn x*sin(x)+log(x); } まではできたのですが、 scanf("%lf",&a);とif(count==1000){の間に入る命令が打てません。 よろしくお願いします。

  • 入出力について

    プログラミングの初心者ですが、入出力について少し理解できないことがあります。ある参考書で long値の使い方について long lg; とし、 出力する時 printf("%ld\n",lg); とせよ と書いてあったのですが この % の後にある l は一体どうゆう役割を果たしているのでしょうか? また入力について double値の使い方で double db; とし、 scanf("%lf", &db); とせよ と書いてあったのですが、この場合の % の後の l は一体どうゆう役割を果たしているのでしょうか? 説明に不足があればまた足しますのでよろしくお願いします。

  • 二次関数の係数と切片 オーバーフローになってしまいます

    二次関数の通る、二つの座標(x1,y1)、(x2,y2)から y=ax+bの、aとbを求めるプログラムを目指して作ったのですが、 実行すると値がNANになってしまいます。 アドバイスしていただけないでしょうか? ソースです ↓ #include<stdio.h> double main(){ double x1,x2,y1,y2,a,b,a1,a2; printf("x1="); scanf("%f",&x1); printf("y1="); scanf("%f",&y1); printf("x2="); scanf("%f",&x2); printf("y2="); scanf("%f",&y2); printf("***RESULT***\n"); printf("y=%f x+ %f",a,b); a1=y1-y2; a2=x1-x2;      a=a1/a2; b=y1-a*x1; return 0; }

  • 配列のソート(昇順)

    最大で30個の整数データを入力し、それを大きい順に並べ替えるプログラムを1次元配列と繰り返し・if文を使って作成しなさい。 という問題で #include<stdio.h> main() { int a[30],x,y,z; printf("Seisu wo 30 ko Nyuryoku \n"); for(x=0;x<=29;x++) scanf("%d",&a[x]); printf("before sort...\n"); for(x=0;x<=29;x++) printf("%d ",a[x]); for(x=0;x<=28;x++) for(y=0;y<=28-x;y++) if(a[y]<a[y+1]) { z=a[y];a[y]=a[y+1];a[y+1]=z; } printf("\n after sort...\n"); for(x=0;x<=29;x++) printf("%d ",a[x]); } ここまで出来たのですが最大で30個ということなので(例)「10個の整数を入力して Z を入力したら終了」 としたいのですがどこをどのようにすればいいですか?

  • 値の渡し方?(初心者)

    以前質問したプログラムについて、新たに質問です。 メインプログラムと、関数プログラムを組みました。 関数の中では、print文を使うと計算は正しく行われていて、結果が正しいことが分かりました。 でうが、メイン文の出力では、どこにも出てこない変な値が出てきてしまいます。 値の渡し方がおかしいのでしょうか? 誰か、アドバイスをお願いします。 ***以下プログラムです。*** #include <stdio.h> #include <math.h> double gamma(double x) { double c[9],y,a,r,b,s,z; int i; a=1.; r=1.; c[1]=5.771916e-01; c[2]=9.882058e-01; c[3]=8.970569e-01; c[4]=9.182068e-01; c[5]=7.567040e-01; c[6]=4.821993e-01; c[7]=1.935278e-01; c[8]=3.586834e-02; printf("0 %f\n",x); while(1){ if(x>2.){ x=x-1.; a=a*x; printf("1 %f %f\n",x,a); } else if(x<1.){ a=a/x; x=x+1.; printf("2 %f %f\n",x,a); } else{ break; } } x=x-1.; for(i=1;i<9;i++){ b=(double)(i); s=(c[i]*((double)(pow(-1.,b)))*((double)(pow(x,b)))); printf("3 %d %f\n",i,c[i]); r=r+s; } y=a*r; printf("4 %lf\n",y); return y; } main() { double x,y; printf("数字を入力してください。"); scanf("%lf",&x); printf("メインプログラム x= %lf \n",x); y=gamma(x); printf("x= %f y= %f\n",x,y); }

  • ファイル分割について

    今本をみながら練習中なのですが、ファイル分割がうまくいきません。以下のような3つのプログラムをかいたのですが実行できません。 (一つ目:myfunc.h) int max(int x,int y); (二つ目:myfunc.c) int max(int x,int y){ if(x > y) return x; else return y;} (三つ目:sample.c) #include <stdio.h> #include "myfunc.h" int main(void){ int x,y,c; printf("1番目の整数\n"); scanf("%d",&x); printf("2番目の整数\n"); scanf("%d",&y); c = max(x,y); printf("最大値は%d\n",c); return 0;} すべてコンパイルしてsample.cを実行してもだめでした。ご指導お願いします><

  • メインのscanfについて

    初心者でつたないプログラムで、大変未熟な内容とは思いますがお許しください…。 以下のようなプログラムを作り実行しました。 gamma(x)については、別のファイルにユーザー関数として定義しました。 このファイルをコンパイル・リンクして実行すると、入力されたxは、ちゃんと認識されずx=0として関数gamma(x)に渡されてしまいます。 で、正しい結果が出ません。 どう直したらいいのですか? 基本的なこととは思いますが,よろしくお願いします。 ======プログラム======= #include <stdio.h> main() { double x,y; printf("数字を入力してください。"); scanf("%f",&x); y=gamma(x); printf("%lf\n",y); } ======================