今学校のc言語の課題であらかじめ組んであったプログラムを関数ごとにわけて作るというようなものをやっています。
そこであらかじめ組んでいたプログラムをばらして下記のようなプログラムを作りました。
#include <stdio.h>
float input_data(float data[5][5]);
float calculate_data(float[5][5],float[2]);
void output_data(float[5][5],float[2]);
float input_data(float data[5][5]){
int i;
for(i=0;i<5;i++){
printf("学生番号:\t");
scanf("%lf",&data[i][0]);
printf("身長:\t");
scanf("%lf",&data[i][1]);
printf("体重:\t");
scanf("%lf",&data[i][3]);
printf("\n");
}
return data[5][5];
}
float calculate_data(float data[5][5],float ave[2]){
int i;
float sum1=0,sum2=0,ave1,ave2;
for(i=0;i<5;i++){
sum1+=data[i][1];
sum2+=data[i][3];
}
ave1=sum1/5.0;
ave2=sum2/5.0;
for(i=0;i<5;i++){
data[i][2]=data[i][1]-ave1;
data[i][4]=data[i][3]-ave2;
}
ave[0]=ave1;
ave[1]=ave2;
return ave[2];
}
void output_data(float data[5][5],float ave[2]){
int i;
float ave1,ave2;
printf("学生番号\t 身長\t\t 平均身長との差\t 体重\t\t 平
;
for(i=0;i<5;i++){
printf("%6.f\t\t",data[i][0]);
printf("%6.1f\t\t",data[i][1]);
printf("%6.1f\t\t",data[i][2]);
printf("%6.1f\t\t",data[i][3]);
printf("%6.1f\n",data[i][4]);
}
printf("\n");
printf("平均値\t\t %5.1lf\t\t\t\t %5.1lf",ave1,ave2);
}
main(void){
float data[5][5],ave[2];
float ave1,ave2;
data[5][5]=input_data(data);
ave[2]=calculate_data(data,ave);
output_data(data,ave);
return 0;
}
これはcalculate_dataの計算の所がおかしいのでしょうか、それともoutput_dataの出力の所がおかしいのでしょうか。