程序如下,statistics中部分参数命名可能需要根据题目修改:
#include <stdio.h>
#define N 100
int input(int s[]);
void statistics(int n, int s[], int *max, int *min, double *avg);
int main() {
int s[N];
int n, max, min;
double avg;
n = input(s);
statistics(n, s, &max, &min, &avg);
printf("数据个数:%d\n", n);
printf("最大值:%d\n", max);
printf("最小值:%d\n", min);
printf("平均值:%f\n", avg);
return 0;
}
int input(int s[]) {
int i = 0, n = 0;
printf("请输入一行数据(以0结束):");
do {
scanf("%d", &s[i]);
if (s[i] == 0) {
break;
}
n++;
} while (++i);
return n;
}
void statistics(int n, int s[], int *max, int *min, double *avg) {
int i, sum = 0;
*max = *min = s[0];
for (i = 0; i < n; i++) {
sum += s[i];
if (s[i] > *max) {
*max = s[i];
}
if (s[i] < *min) {
*min = s[i];
}
}
*avg = (double) sum / n;
}