指针作为函数参数02(C)

用随机函数生成一个整型数组。编写一个返回类型为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;
		}
	}
}

猜你喜欢

转载自blog.csdn.net/ukco_well/article/details/82084832