下面代码中,main函数三次调用函数fun,每次输入一组正整数,最后输出全部数据的最大值,最小值,总和,平均值。
定义函数fun,完成一组数据处理,每组数组个数不确定,以负数结束输入,空格分隔。
int fun (void); fun返回值为这组数据的个数。(不包括结束标志)
在这里给出函数被调用进行测试的例子。例如: #include <stdio.h> int max=0,min=0,total=0; int fun (void); int main() { int n; n=fun(); n=fun(); n=fun(); printf("max=%d min=%d total=%d ave=%.1f",max,min,total,(float)total/n); } /* 请在这里填写答案 */
是这样吗?
#include <stdio.h>
int max=0,min=0,total=0;
int fun (void);
int main() {
int n=0;
n=fun();
n=fun();
n=fun();
printf("max=%d min=%d total=%d ave=%.1f",max,min,total,(float)total/n);
}
/* 请在这里填写答案 */
int fun (void){
static int num=0;
int read=-1;
scanf("%d",&read);
while(read>0){
num++;
if(max==0){ //如果第一次运行,则把max和min的值设置为第一个数
max=min=read;
}
total+=read; //把每一个输入的正整数累加到总和中
if(max<read){ //求最大数
max=read;
}
if (min>read){ //求最小数
min=read;
}
scanf("%d",&read); //读入下一个数
}
return num; //返回读入的正整数
}