编写一个程序,提示用户输入 3 个数集,每个数集包括 5 个 double 值。程序应实现下列功能:
a. 输入数据,存偹在一个 3 x 5 的数组中
b. 计算出每个数集(包括 5 个数值)的平均值
c. 计算所有数值的平均数
d. 找出数组 15 个数中最大值
e. 打印出结果
#include<stdio.h>
#define ROOW 3#define LINE 5
void average(double ar[][LINE],int l);//求平均数函数
double max(double ar[][LINE],int l);//求最大数
int main(void)
{
double arr[ROOW][LINE]={{1,2,3,4,5.6},{66.23,7,8,9,22.3},{11,12,13,14,15.2}};//初始化,(数据是随意输入的)
double b;
average(arr, ROOW);
b=max(arr,ROOW);
printf("the bigeer number is %lf \n ",b);
}
void average(double ar[][LINE],int l)
{ int m,n;
double sum_line, total=0;
for(m=0;m<l;m++)
{
for(n=0,sum_line=0;n<LINE;n++)
{
sum_line+=ar[m][n];//计算row的平均值
}
printf("the average of line%d is %lf\n",m+1,sum_line/LINE);
total+=sum_line;//计算全部数的平均数
}
printf("the averafe of all is %lf\n",total/(ROOW*LINE));
}
double max(double ar[][LINE],int l)
{
int x,y;
double a=0;
for(x=0;x<l;x++)
for(y=0;y<LINE;y++)
if(ar[x][y]>a)
a=ar[x][y];
return a;
}
1. total 如果没有初始化,运行出错
2. 调用Max函数后,打印返回值时,输出格式控制符若写为%d-->(printf("the bigeer number is %ld\n ",b);),则输出有错;
正确结果: