老师平时布置的希冀系统上的作业答案,仅供参考!
【问题描述】
键盘输入一个数组,求这个数组的和、最大值、最小值、平均值。
第一行输入数组的大小,第二行数组数组元素。定义函数void init(int x,n)实现数组初始化,定义函数int sum(int x,n)求数组的和并返回。定义函数int max(int x,n)求数组最大值并返回;定义函数int min(int x,n)求数组最小值并返回。定义函数float ave(int *x,n)求数组的平均值并返回。
【输入形式】
第一行输入数组的长度n
第二行输入n个整数
【输出形式】
数组的和、最大值、最小值、平均值
【样例输入】
3
23 26 23
【样例输出】
72 26 23 24.00
【参考答案】
#include <stdio.h>
void main()
{
void init(int *x, int n);
void print(int *x, int n);
int sum(int *x, int n);
int max(int *x, int n);
int min(int *x, int n);
float avg(int *x, int n);
int a[100];
int n;
scanf("%d",&n);
init(a,n);
printf("%d ",sum(a,n));
printf("%d ",max(a,n));
printf("%d ",min(a,n));
printf("%.2f ",avg(a,n));
}
int sum(int *x, int n)
{
int sum=0;
for(int i=0;i<n;i++)
{
sum+=*(x+i);
}
return (sum);
}
int max(int *x, int n)
{
int max=*x;
for(int i=0;i<n;i++)
{
if(max<*(x+i))
max=*(x+i);
}
return (max);
}
int min(int *x, int n)
{
int min=*x;
for(int i=0;i<n;i++)
{
if(min>*(x+i))
min=*(x+i);
}
return (min);
}
float avg(int *x, int n)
{
int sum=0;
for(int i=0;i<n;i++)
{
sum+=*(x+i);
}
float aver;
aver=(1.00*sum)/n;
return (aver);
}
void init(int *x, int n)
{
for(int i=0;i<n;i++)
{
scanf("%d",x++);
}
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容