用随机函数生成一个整型数组。编写一个返回类型为void 的函数,求数组中所有元素的总和、最大值、最小值和平均值。在 main
函数中调用这个函数以测试其功能
/**==========================================================
*学号:1527403059
*作业:E59
*功能: 随机初始化一个数组,求数组中所有元素的总和、最大值、最小值和平均值
*作者:陆胤任
*日期:2015.11.29
*===========================================================*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define N 10 //定义数组长度为10
/*finction declare
*@param:随机初始化一个数组,求数组中所有元素的总和、最大值、最小值和平均值
*@brief:int arry[]:数组
int *num:各元素之和
int *max:元素中的最大值
int *min:元素中的最小值
*@reval:void*/
void find_arry(int arry[],int *num,int *max,int *min); //声明find_arry(int arry[],int *num,int *max,int *min)函数
/*function define*/
int main() //主函数
{
int a[N],i;
int num=0,max=0,min=0; //使num max min的初始值均为0
find_arry(a,&num,&max,&min); //调用函数
printf("原数组为:\n"); //输出随机数组
for(i=0;i<N;i++)
{
printf("%5d",a[i]);
}
printf("\n");
printf("随机数组中元素和为%d,最大值为%d,最小值为%d:\n",num,max,min); //输出结果
return 0;
}
void find_arry(int arry[],int *num,int *max,int *min)
{
int i,*p;
int *pointer_1,*pointer_2;
srand((unsigned)time(NULL)); //随机初始化数组
for(i=0;i<N;i++)
{
arry[i]=rand()%101-50;
}
*num=*arry; //初始化*num指针
for(p=(arry+1);p<(arry+N);p++)
{
*num=*num+*p; //求原数组中个元素的和
}
*max=*arry;
*min=*arry;
for(pointer_1=(arry+1);pointer_1<(arry+N);pointer_1++) //循环找出最大值
{
if(*pointer_1>*max)
{
*max=*pointer_1;
}
}
for(pointer_2=(arry+1);pointer_2<(arry+N);pointer_2++) //循环找出最小值
{
if(*pointer_2<*min)
{
*min=*pointer_2;
}
}
}