黑马程序员技术交流社区

标题: 利用指针返回多个需要的值 [打印本页]

作者: muyan091115    时间: 2016-5-19 23:41
标题: 利用指针返回多个需要的值
  1. //
  2. //  main.c
  3. //  HomeWork_04
  4. //
  5. //  Created by 蒋伟 on 16/5/14.
  6. //  Copyright (c) 2016年 蒋伟. All rights reserved.
  7. //

  8. #include <stdio.h>
  9. #include <limits.h>


  10. /**
  11. *  取得最大值最小值和平均值
  12. *
  13. *  @param arr    数组
  14. *  @param length 数组长度
  15. *  @param pMax   最大值的指针
  16. *  @param pMin   最小值的指针
  17. *  @param pSum   和的指针
  18. *  @param pAvg   平均数的指针
  19. */
  20. void getAll(int *arr, int length, int *pMax, int *pMin, int *pSum, double *pAvg);

  21. /**
  22. *  打印数组
  23. *
  24. *  @param arr    数组
  25. *  @param length 数组长度
  26. */
  27. void printfArr(int *arr, int length);

  28. int main(int argc, const char * argv[]) {
  29.     int arr[] = {432,432,432,432,43,5,4376,58,36,3245,62,66,3,7};
  30.     int length = sizeof(arr) / sizeof(int);
  31.     int max, min, sum;
  32.     double avg;
  33.     getAll(arr, length, &max, &min, &sum, &avg);
  34.     printfArr(arr, length);
  35.     printf("max = %d , min = %d , sum = %d , avg = %.2lf\n",max, min, sum, avg);
  36.     return 0;
  37. }

  38. /**
  39. *  取得最大值最小值和平均值
  40. *
  41. *  @param arr    数组
  42. *  @param length 数组长度
  43. *  @param pMax   最大值的指针
  44. *  @param pMin   最小值的指针
  45. *  @param pSum   和的指针
  46. *  @param pAvg   平均数的指针
  47. */
  48. void getAll(int *arr, int length, int *pMax, int *pMin, int *pSum, double *pAvg){
  49.     int min = INT32_MAX;
  50.     int max = INT32_MIN;
  51.     int sum = 0;
  52.     double avg = 0;
  53.     for(int i = 0; i < length; i++){
  54.         sum += arr[i];
  55.         if(arr[i] > max){
  56.             max = arr[i];
  57.         }
  58.         if(arr[i] < min){
  59.             min = arr[i];
  60.         }
  61.     }
  62.     avg = (double)sum / length;
  63.     *pMax = max;
  64.     *pMin = min;
  65.     *pSum = sum;
  66.     *pAvg = avg;
  67. }

  68. /**
  69. *  打印数组
  70. *
  71. *  @param arr    数组
  72. *  @param length 数组长度
  73. */
  74. void printfArr(int *arr, int length){
  75.     for(int i = 0; i < length; i++){
  76.         printf("%d\t",arr[i]);
  77.     }
  78.     printf("\n");
  79. }
复制代码







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2