从键盘输入若干 整数(零表示结束), 统计出 数据个数, 以及最大值、最小值和平均值。

从键盘输入若干 整数(零表示结束),
统计出
数据个数,
以及最大值、最小值和平均值。

用一个函数实现数据
输入的功能,其首部为:
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;
}
posted @   xuchaoxin1375  阅读(29)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2022-04-01 linux_系统编程系统库调用和函数所在头文件的查询/apropos获取按功能查找命令/查找头文件所在目录
点击右上角即可分享
微信分享提示