程序执行到一半就出错了,而且输出的那一部分又不对
程序代码:
#include<stdio.h> #define NUMBER1 3 #define NUMBER2 5 void average1(double[][NUMBER2]);//每个数集的平均值 double average2(double[][NUMBER2]);//所有数值的平均值 double max(double[][NUMBER2]); //最大值 void enter(double[][NUMBER2]);//输入 void output(double[][NUMBER2]); //输出 int main(void) { double a,b,c,n; double array[NUMBER1][NUMBER2]={0}; printf("请输入15个数值"); enter(array); output(array); average1(array); printf("%f,%f,%f的平均值:%f\n",array[0][0],array[0][1],array[0][2],a); printf("%f,%f,%f的平均值:%f\n",array[1][0],array[1][1],array[1][2],b); printf("%f,%f,%f的平均值:%f\n",array[2][0],array[2][1],array[2][2],c); average2(array); printf("所有数值的平均值:%f",average2(array)); max(array); printf("最大值为%f",max(array)); return 0; } void enter(double array[][NUMBER2]) { int i,n; for(i=0;i<NUMBER1;i++) { for(n=0;n<NUMBER2;n++) { scanf("%lf",&array[i][n]); } } } void output(double array[][NUMBER2]) { int i,n; for(i=0;i<NUMBER1;i++) { for(n=0;n<NUMBER2;n++) { printf("array[%d][%d]=%f\t",i,n,array[i][n]); } } } void average1(double array[][NUMBER2]) { double a=0,b=0,c=0; a=(array[0][0]+array[0][1]+array[0][2]+array[0][3]+array[0][4])/3; b=(array[1][0]+array[1][1]+array[1][2]+array[1][3]+array[1][4])/3; c=(array[2][0]+array[2][1]+array[2][2]+array[2][3]+array[2][4])/3; } double average2(double array[][NUMBER2]) { int d=0,e=0,f=0,h=0; d=array[0][0]+array[0][1]+array[0][2]+array[0][3]+array[0][4]; e=array[1][0]+array[1][1]+array[1][2]+array[1][3]+array[1][4]; f=array[2][0]+array[2][1]+array[2][2]+array[2][3]+array[2][4]; h=(d+e+f)/5; return h; } double max(double array[][NUMBER2]) { int i,n,max; for(i=0,max=array[0][0];i<NUMBER1;i++) { for(n=0;i<NUMBER2;n++) { if(max<array[i][n]) max=array[i][n]; } } return max; }
我输入1,2,3,4,5,6,7,8,9,10,11,12,13,14,15。结果全显示为零,而且还出错。是不是enter函数出问题了?