黑马程序员技术交流社区
标题: 当函数需要返回多个值时,用指针操作实参变量. [打印本页]
作者: wx_byrDDXsc 时间: 2016-3-27 21:19
标题: 当函数需要返回多个值时,用指针操作实参变量.
/*
编写1个函数. 该函数返回1个整型数组中的最大值、最小值、平均值、累积和.
分析: 一个函数如果需要返回多个返回值,需要使用指针.
*/
#include <stdio.h>
void jiSuanArr(int* arr,int len,int* pMax,int* pMin,double* pAvg,int* pSum);
int main()
{
//定义变量
int max = 0,min = 0,sum = 0;
double avg = 0;
//定义数组,定义长度.
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int len = sizeof(arr)/sizeof(arr[0]);
//调用函数,传入参数.参数是之前定义的变量的地址,用于在函数中被指针操作修改.
jiSuanArr(arr, len, &max, &min, &avg, &sum);
//输出结果.
printf("最大值是:%d\n最小值是:%d\n平均值是:%.2lf\n累加和:%d\n",max,min,avg,sum);
return 0;
}
void jiSuanArr(int* arr,int len,int* pMax,int* pMin,double* pAvg,int* pSum)
{
//这里的指针指向的就是main函数中定义的对应的变量.操作它们实际就是在操作它们指向的变量.
//求最大值,最小值.
*pMax = INT32_MIN;
*pMin = INT32_MAX;
for (int i = 0; i < len; i++)
{
if (*pMax < arr)
{
*pMax = arr;
}
if (*pMin > arr)
{
*pMin = arr;
}
//求累加和.
*pSum = *pSum + arr;
}
//求平均值.
*pAvg = (double)*pSum / len;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |