黑马程序员技术交流社区
标题:
利用指针返回多个需要的值
[打印本页]
作者:
muyan091115
时间:
2016-5-19 23:41
标题:
利用指针返回多个需要的值
//
// main.c
// HomeWork_04
//
// Created by 蒋伟 on 16/5/14.
// Copyright (c) 2016年 蒋伟. All rights reserved.
//
#include <stdio.h>
#include <limits.h>
/**
* 取得最大值最小值和平均值
*
* @param arr 数组
* @param length 数组长度
* @param pMax 最大值的指针
* @param pMin 最小值的指针
* @param pSum 和的指针
* @param pAvg 平均数的指针
*/
void getAll(int *arr, int length, int *pMax, int *pMin, int *pSum, double *pAvg);
/**
* 打印数组
*
* @param arr 数组
* @param length 数组长度
*/
void printfArr(int *arr, int length);
int main(int argc, const char * argv[]) {
int arr[] = {432,432,432,432,43,5,4376,58,36,3245,62,66,3,7};
int length = sizeof(arr) / sizeof(int);
int max, min, sum;
double avg;
getAll(arr, length, &max, &min, &sum, &avg);
printfArr(arr, length);
printf("max = %d , min = %d , sum = %d , avg = %.2lf\n",max, min, sum, avg);
return 0;
}
/**
* 取得最大值最小值和平均值
*
* @param arr 数组
* @param length 数组长度
* @param pMax 最大值的指针
* @param pMin 最小值的指针
* @param pSum 和的指针
* @param pAvg 平均数的指针
*/
void getAll(int *arr, int length, int *pMax, int *pMin, int *pSum, double *pAvg){
int min = INT32_MAX;
int max = INT32_MIN;
int sum = 0;
double avg = 0;
for(int i = 0; i < length; i++){
sum += arr[i];
if(arr[i] > max){
max = arr[i];
}
if(arr[i] < min){
min = arr[i];
}
}
avg = (double)sum / length;
*pMax = max;
*pMin = min;
*pSum = sum;
*pAvg = avg;
}
/**
* 打印数组
*
* @param arr 数组
* @param length 数组长度
*/
void printfArr(int *arr, int length){
for(int i = 0; i < length; i++){
printf("%d\t",arr[i]);
}
printf("\n");
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2