平均、最大、最小値の求め
データーを20個入力して平均値、最小値、最大値を求めるという問題を解こうとしたのですが、どうも分からないので教えていただけないでしょうか?
友達と二人で取り組んでプログラムを作成したのですがエラーが出たりして成功しませんでした。
(1)算術型関数heikin、saidai、saishoに分けて作成せよ
#include<stdlib.h>
#include<stdio.h>
#define N (20)
int main(void){
double Saidai(double data[], int N){
int i;
double saidai;
saidai = data[0];
for (i=1; i<N; i=i+1){
if(data[i] > saidai){
saidai = data[i];
}else
}
double Saisho(double data[], int N){
int i;
double saisho;
saisho = data[0];
for (i=1; i<N; i=i+1){
if(data[i] < saisho){
saisho = data[i];
}else
}
double Heikin(double data[], int Ninzu){
int i;
double heikin;
double goukei;
goukei = 0;
for (i=0; i<Ninzu; i=i+1){
goukei = goukei+data[i];
}
heikin = goukei / ((double)Ninzu);
fprintf(stdout,"saidai=%lf\n",saidai);
fprintf(stdout,"saisho=%lf\n",saisho);
fprintf(stdout,"heikin=%lf\n",heikin);
return(EXIT_SUCCESS);
}
エラー E2293 ) が必要(関数 main )
エラー E2139 宣言に ; がない(関数 main )
エラー E2134 複合文に } がない(関数 main )
警告 W8070 関数は値を返すべき(関数 main )
(2)手続き型関数を用いて、平均値、最大値、最小値を一括に処理するプログラムを作成せよ
こちらに関してはお互い手も出ませんでした。
乱文で分かりずらいと思うかも知れませんが、分かる方がいましたら教えていただけないでしょうか?
よろしくお願いします。
補足
言葉足らずで申し訳ありません。 私の作ったモノを載せておきます 回帰直線のパラメータと回帰直線を求める物です。 #include <stdio.h> #define N 5 FILE *fp1; double bb(double y[N],double x[N]); double heikin(double a[N]); int main(void) { long int i; double y[N],x[N],mx,my,a,b; fp1=fopen("data2.csv","r"); for(i=0;i<N;i++){ fscanf(fp1,"%lf,%lf",&y[i],&x[i]);} fclose(fp1); b=bb(y,x); my=heikin(y); mx=heikin(x); a=my-b*mx; printf("パラメータaは%.2fです。\nパラメータbは%.2fです。\n",a,b); if(a<0) printf("直線回帰式はy=%.2fx%.2f\n",b,a); else printf("直線回帰式はy=%.2fx+%.2f\n",b,a); return(0); } double bb(double y[N],double x[N]) { long int i; double sum1,sum2,my,mx; my=heikin(y); mx=heikin(x); for(i=0;i<N;i++){ sum1+=(x[i]-mx)*(x[i]-mx); sum2+=(y[i]-my)*(x[i]-mx);} return(sum2/sum1); } double heikin(double x[N]) { long int i; double sum=0.0; for(i=0;i<N;i++){ sum+=x[i];} return(sum/N); } ご回答ありがとうございます 大体は理解できたのですが、heikinで平均を求めそれをbbで呼び出すんですが、実行した時に1回目はうまくいくんですが2回目に実行したら全然違う答えが返ってくるんです。。返り値が違うんでしょうか?