• 締切済み

この言語を教えてください!あとどの環境ソフトで、、

#include #define N 5 int main(void) { char name[N][100]={" Ast ","Furie","Jenos","Lucio","Slare"}; int das[N]={636,658,666,640,662}; /*打数*/ int adas = 0; /*平均打数*/ int hit[N]={119,168,6,137,184}; /*シングルヒット数*/ int hitsum[N]={0,0,0,0,0}; /*安打数*/ int ahitsum = 0; /*平均安打数*/ int mhitsum = 0; /*最多安打数*/ int khit = 0; /*最多安打者の番号*/ int twob[N]={42,21,6,22,34}; /*二塁打*/ int atwob = 0; /*平均二塁打数*/ int thrb[N]={5,9,0,0,11}; /*三塁打*/ int athrb = 0; /*平均三塁打数*/ int home[N]={30,9,66,33,6}; /*本塁打*/ int ahome = 0; /*平均本塁打数*/ int mhome = 0; /*最多本塁打数*/ int khome = 0; /*本塁打王の番号*/ int point[N]={125,91,118,95,70}; /*打点*/ int apoint = 0; /*平均打点*/ int mpoint = 0; /*最多打点数*/ int kpoint = 0; /*打点王の番号*/ int steal[N]={6,22,1,17,68}; /*盗塁数*/ int asteal = 0; /*平均盗塁数*/ int msteal = 0; /*最多盗塁数*/ int ksteal = 0; /*盗塁王の番号*/ int out[N]={37,32,346,48,2}; /*三振数*/ int aout = 0; /*平均三振数*/ int mout = 0; /*最多三振数*/ int kout = 0; /*三振王の番号*/ int minout = 10000; /*最小三振数*/ int kminout = 0; /*最小三振者の番号*/ int fd[N]={13,24,1,53,9}; /*四死球数*/ int afd = 0; /*平均四死球数*/ int error[N]={8,14,38,10,1}; /*失策数*/ int aerror = 0; /*平均失策数*/ int merror = 0; /*最多失策数*/ int kerror = 0; /*最多失策者の番号*/ int minerror = 10000; /*最小失策数*/ int kminerror = 0; /*最小失策者の番号*/ int rui[N]={0,0,0,0,0}; /*塁打数*/ int arui = 0; /*平均塁打数*/ int mrui = 0; /*最多塁打数*/ int krui = 0; /*塁打王の番号*/ double obp[N]={0,0,0,0,0}; /*出塁率*/ double aobp = 0; /*平均出塁率*/ double mobp = 0; /*最高出塁率*/ int kobp = 0; /*出塁王の番号*/ double slg[N]={0,0,0,0,0}; /*長打率(塁打数/打数)*/ double aslg = 0; /*平均長打率*/ double mslg = 0; /*最高長打率*/ int kslg = 0; /*長打王の番号*/ double ave[N]={0,0,0,0,0}; /*打率*/ double aave = 0; /*平均打率*/ double mave = 0; /*最高打率*/ int kave = 0; /*打率王の番号*/ int i = 0; /*for文で使用*/ /*注意:考えられる限りの成績を詰め込んでいます*/ printf("------------------------------------------------------------------------------n"); printf("Name |打数|安打|二塁|三塁|本塁|塁打|打点|盗塁|四死|三振|失策|出塁 |長打 |打率 |n"); for(i = 0;i <= N - 1;i++){ /*安打数(シングル~ホームランまでの合計数)*/ hitsum[i] = hit[i] + twob[i] + thrb[i] + home[i]; /*出塁率(安打数+四死球/打数)*/ obp[i] = (hitsum[i] + fd[i]) / (double)das[i]; /*塁打数(シングル=1、二塁打=2、三塁打=3、本塁打=4での総数*/ rui[i] = hit[i] + twob[i] * 2 + thrb[i] * 3 + home[i] * 4; /*長打率(先述)*/ slg[i] = (double)rui[i] / das[i]; /*打率(安打数/打数)*/ ave[i] = (double)hitsum[i] / das[i]; /*平均に使う値に逐次放り込み*/ adas = adas + das[i] / N; ahitsum = ahitsum + hitsum[i] / N; atwob = atwob + twob[i] / N; athrb = athrb + thrb[i] / N; ahome = ahome + home[i] / N; apoint = apoint + point[i] / N; asteal = asteal + steal[i] / N; afd = afd + fd[i] / N; aout = aout + out[i] / N; aerror = aerror + error[i] / N; arui = arui + rui[i] / N; aobp = (double)aobp + (double)obp[i] / N; aslg = (double)aslg + (double)slg[i] / N; aave = (double)aave + (double)ave[i] / N; /*字数を揃えて表示。名前は文字列なので%sで出力*/ printf("%s|%4d|%4d|%4d|%4d|%4d|%4d|%4d|%4d|%4d|%4d|%4d|%4.3f|%4.3f|%4.3f|n",name[i],das[i],hitsum[i], twob[i],thrb[i],home[i],rui[i],point[i],steal[i],fd[i],

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

C言語、または、C言語に近い言語 C言語だとしたら、実行する際には、Cコンパイラでコンパイルして実行ファイルにするのが普通。 ただ、おそらく、平均の計算がうまくいかないと思われます

shinichi0890
質問者

お礼

ありがとうございます!

shinichi0890
質問者

補足

よかったら平均の計算の部分を教えてください

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C言語 入力した数値の平均値の近似値(関数を利用)

    double型の配列 a[] と、要素数 n を受け取り、 a の最初の n 要素の平均を値として返す関数 double average(double a[], int n) および、double型の配列 a[] と、要素数 n を受け取り、 a の最初の n 要素のなかで、それら n 要素の平均値と最も近い値を返す関数 double closest_to_average(double a[], int n) を作成して、main関数で、平均値と最も近い値を出力しろ という問題をやってみたのですが、私のプログラムでは実行して、数値を入力した後強制終了されてしまいます。 どこが間違えているのか教えていただけないでしょうか? 以下が私の作ったプログラムです。 ---------------------------------------------------------------------- #include <stdio.h> double average(double a[], int n) { int i; double sum,avg; sum=0; for(i=0;i<n;i=i+1){ sum=sum+a[i]; } avg=sum/n; return(avg); } double closest_to_average(double a[], int n) { int i; double avg,num1,num2,ans; avg=average(a,n); num1=avg-a[0]; if(num1<0){ num1=num1*(-1); } for(i=1;i<n;i=i+1){ num2=avg-a[i]; if(num2<0){ num2=num2*(-1); } if(num1>num2){ num1=num2; ans=a[i]; } } return(ans); } int main (void) { int i,n; double a[100]; double ans; scanf("%d",&n); for(i=0;i<n;i=i+1){ scanf("%d",a[i]); } ans=closest_to_average(a,n); printf("%f",ans); return(0); } ---------------------------------------------------------------------- ちなみに「3 3.0 5.0 11.0」と入力すれば「5.000」となるはずです。 よろしくお願いします。

  • C言語<素数を求めるプログラム>

    #include<stdio.h> int j; int prime(int n) { int i; if(n < 2) return 0; if(n == 2) return 1; if(n%2 == 0) return 0; for(i = 3; i*i<= n; i += 2){ if(n%i == 0) return 0; } return 1; } int main(void) { int n; for(n=1; n <= 1000; n++) { if(prime(n)){ printf("%d\n",n); j++; } } printf("素数の個数は全部で %d 件見つかりました。\n",j); return 0; } このプログラムは1から1000までの素数のみを表示させるプログラムでありますが、このアルゴリズムが全くわかりません。 int prime(int n)の中身のアルゴリズムがどういう仕組みになっているのかお分かりになりますでしょうか?

  • 疑似言語とJavaプログラムについて

    どうしてもわからないもので恥ずかしながら質問させていただきます。 背番号、打数、安打数の組を多数入力し、打率の最高の選手のみ、背番号、打数、 安打数とともに打率を出力する(同一打率の選手はいないものとする)。入力データのストッパは、背番号=-999とする。 という問題でこれを疑似言語とJavaのプログラムで書けということなのですが私には全くといっていいほどわからずわかる人がおりましたら解答お願いします。 補足 どちらか片方でもお願いします。

  • C言語のプログラム添削お願いします

    #include<stdio.h> int main(void) { int a[4]; int i=0; int n; int sum=0; printf("正数を入力してください\n"); while(i<=4) {scanf("%d",&n); if(n>=0) {a[i]=n; sum=sum+a[i]; i++; } else{printf("正数を入力してください");} } printf("正数の合計値は%dです",sum); printf("正数の平均値は%lfです",(double)(sum/5)); return(0); } 上記は正数のみ配列に保存し、その合計と平均を表示するプログラムを 製作しようとして書いたものですが次のような問題点があり正常に機能しません。 (1)a[i]=n;をn=a[i];と置き換えると不正な値が表示される (2)平均値の小数点以下の値がおかしい   (例)8+8+8+9+8と入力し合計値41に対し、平均値が8.000000 解決法が分からず困っています。どなたかお力添えお願いします。

  • c言語です。

    c言語です。 実行結果 式 3 X1 + 2 X2 + 1 X3 = &g 2 X1 + 5 X2 + 2 X3 = &g 1 X1 + 4 X2 + 1 X3 = &g 解 X1 = 1 X2 = 2 X3 = 3 を 式 3 X1 + 2 X2 + 1 X3 = 10 2 X1 + 5 X2 + 2 X3 = 18 1 X1 + 4 X2 + 1 X3 = 12 解 X1 = 1 X2 = 2 X3 = 3 に直したいのですが&gの所をどのようにしたら10.18.12になりますか? #include <stdio.h> #include <float.h> #define N 3 double A[N][N] = {{3,2,1}, {2,5,2}, {1,4,1}}; double b[N] = { 10, 18, 12 }; void Gauss_J( int, double*, double* ); void main(void) { int i; printf( "%d式\n", N ); for( i = 0; i < N ; i++ ) { printf( "%g X1 + %g X2 + %g X3 = &g \n", A[i][0], A[i][1], A[i][2], b[i] ); } printf("解\n"); Gauss_J(N, (double *)A, (double *)b ); printf("X1 = %g \n", b[0]); printf("X2 = %g \n", b[1]); printf("X3 = %g \n", b[2]); } void Gauss_J(int n, double *a, double *b) { int p, i, j,I ; double pivot, c ; for ( p = 0 ; p < n ; p++ ) { pivot = a[ p*n + p ]; for ( i = p ; i < n ; i++ ) { a[ p*n + i ] /= pivot; } b[ p ] /= pivot; for ( I = 0 ; I < n ; I++) { if (I != p) { c = a[ I*n + p]; for ( j = p ; j < n; j++ ) { a[ I*n + j] -= c * a[ p*n + j ]; } b[ I ] -= c * b[ p ]; } } } return ; }

  • 配列 平均値と分散値

    #include <stdio.h> void mean_vari(int *s, int n, double *mean, double *variance); int main(void) { int i, n; int a[]={34, 54, 21, 80, 60, 90, 15, 24, 100}; double heikin, bunsan; mean_vari(&i,n,&heikin,&bunsan); printf("平均=%f 分散=%f\n",heikin,bunsan); return (0); } /* 合計を求める関数 */ void mean_vari(int *s, int n, double *mean, double *variance) { int i; int sum=0; /* 合計の初期化 */ double sum2=0; for (i = 0; i < n; i++) sum += s[i]; ????=sum/(double)????; for (i = 0; i < n; i++){ sum2 +=????; } ????=????; } 平均値と分散値を求めたいのですが、????の部分になりをいれていいかわかりません。 教えてください。

  • C言語に詳しい方、教えていただけませんか?

    n個の実数をキーボードから入力して総和を求めるプログラムを書いたのですが、結果が+NANとなってしまいます。 また、値をキーボードから入力する際、小数にするとすぐにプログラムが終了してしまいます。例えば、a[0]=1.0とすると、 a[1]=a[2]=a[3]=a[4]=合計は+NANと表示され終了してしまいます。 ちゃんと小数を入力でき、結果も正しく表示されるように間違いを指摘していただけませんか?よろしくお願いします。 (nは5としました) #include <stdio.h> #define n 5 double souwa(double a[n]); int main(void) { int i; double sum, a[n]; for(i=0; i<=n-1; i++){ printf("a[%d] = ",i); scanf("%d",&a[i]); } sum = souwa(a); printf("合計は%f\n",sum); return 0; } double souwa(double a[n]) { int i; double sum = 0.0; for(i=0; i<=n-1; i++){ sum += a[i]; } return sum; }

  • C++言語のプログラムをfortranに変換

    const int N = 100; const double q = 10.0, dt = 0.00001, Dm = 30.0, t0 = 2.0, K = 1.0, pi = 3.141592, f = 3.0; double C[N], dC[N]; double dx = q/N; for (int i = 0; i < N; ++i) C[i] = 0; // 初期条件 for (double t = 0; t < t0; t += dt) {  C[0] = 0; // 境界条件1  C[N - 1] = K*sin(2*pi*f*t); // 境界条件2  for (int i = 1; i < N - 1; ++i) dC[i] = (Dm*(C[i + 1] - 2*C[i] + C[i - 1])/(dx*dx))*dt;  for (int i = 1; i < N - 1; ++i) C[i] += dC[i]; } for (int i = 0; i < N; ++i) cout << C[i] << endl; // t = t0 このプログラムをfortranに変換できる方いますか?

  • mysqlでの検索方法について

    初めて質問をさせて頂きます。初心者にてどうにも行き詰ってしまいアドバイスを頂けたらと思います。 野球の打率ランキングを出したいのですが、最終的には下記の条件で抽出したいと思っております。 1位 A君 0.333 2006年 2位 B君 0.321 2008年 3位 C君 0.300 2007年 ・・・ 環境としましては、PHP4.4.4 MYSQL4.0(レンタルサーバー) テーブル record ID(INT)|選手番号(INT)|安打(INT)|打数(INT)|年度(INT)|試合番号(INT)| 1 | 1 | 1 | 1 | 2008 | 10 | 2 | 1 | 0 | 1 | 2008 | 10 | ・・・ というように、選手の1打席毎にレコードがあります。 また規定打数を試合数×3.1と設けて、その打数に達しないものは抽出しないようにしたいのです。 SELECT round(sum(安打) / sum(打数),3) as daritsu, 選手番号, 年度 FROM record GROUP BY 選手番号, 年度 HAVING sum(打数) > count(distinct(試合番号)) * 3.1 ORDER BY daritsu DESC LIMIT 0 , 10 と考えてみたものの、この場合は選手の出場試合数×3.1となってしまい、チームの試合数ではありません。行き詰っているのは、年度毎のチームの試合数に対して規定打数を設定することだと思います。 条件のような抽出が難しいようであれば、抽出後にPHPで処理という形でも構いませんので、アドバイスの程よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • C言語

    #include <stdio.h> #include <stdib.h> int main (void){ double a[5]={0.0,4.0,0.0,-5.0,1.0}; double x; int i,j,k,n; n=4; x=0.75; for(i=1;i<=n;i++) printf("%10.5f ,",a[i]); printf("\n"); for (i=1; i<=n+1; i++) printf("----------") printf("\n"); while(n>=1){ for(i=1; i<=n; i++) a[i]=a[i-1]*x+a[i]; for(i=1; i<=n; i++) prontf("%10.5f ,"a[i]); printf("\n"); n=n-1; } return 0; }