从键盘输入若干 整数(零表示结束), 统计出 数据个数, 以及最大值、最小值和平均值。
从键盘输入若干 整数(零表示结束),
统计出
数据个数,
以及最大值、最小值和平均值。
用一个函数实现数据
输入的功能,其首部为:
int Input(int s[])
Input的参数为输入的数据,
函数返回值大于0表示该行输入的数据个数,
0表示输入结束。
用一个函数实现求最大值、最小值和平均值的功能,首部为:
void statistics(int n, int s[], int *max, int *min, float *avg)
输入
从键盘输入若干数据整数(零表示结束)
输出
统计出数据个数,以及最大值、最小值和平均值
样例输入
1 2 3 4 5 0
样例输出
Num=5
Max=5
Min=1
Avg=3.000
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
// // 拷贝到平台的时候把my_fuction_lib.h注释掉.
//#include "my_fuction_lib.h"
//在此下方插入自定义函数对的声明:
void statistics(int n, int s[], int *max, int *min, float *avg)
{
max[0] = min[0] =s[0];
float sum = max[0];
for(int i = 1;i<n;i++)
{
if(s[i] > max[0]) max[0] = s[i];
else if (s[i] <min[0]) min[0] = s[i];
sum += s[i];
}
avg[0] = sum/n;
}
int Input(int s[])
{
/*
以下写法不可取,因为scanf里的i++后,回到while的判断中,是s[i]就不是刚才读组的值了
因此无法判断刚才读到的是否结束标志0.
int i = 0;
scanf("%d",&s[i]);
while( s[i] != 0)
{
scanf("%d",&s[i++]);
} */
int i = 0;
/* 初始化s[0] */
scanf("%d",&s[i]);
for(;s[i++] != 0;)
{
scanf("%d",&s[i]);
}
return i-1;
}
//主函数main
int main()
{
int s[100];
int min[1];
int max[1];
float avg[1];
int n;
int i = 0;
// while(scanf("%d",&s[i++]) && s[i] != 0);
n = Input(s);
statistics(n, s, max, min, avg);
printf("Num=%d\n", n);
printf("Max=%d\n",max[0]);
printf("Min=%d\n",min[0]);
printf("Avg=%.3f\n",avg[0]);
return 0;
}

浙公网安备 33010602011771号