鱼C论坛

 找回密码
 立即注册
查看: 2228|回复: 6

求c++中一个数组中的最大值,最小值,平均值和中值,谢谢了

[复制链接]
发表于 2021-10-13 19:57:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求c++中一个数组中的最大值,最小值,平均值和中值,谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-13 20:18:29 | 显示全部楼层
把数组元素列出来一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-13 20:30:56 | 显示全部楼层
嘉岳呀 发表于 2021-10-13 20:18
把数组元素列出来一下

{1 6 8 7 9 4 3 5 2 10}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-13 21:24:03 | 显示全部楼层
本帖最后由 jhq999 于 2021-10-13 21:28 编辑
  1. max=min=0;
  2. bool flag=0;
  3. sum=数组[0];
  4. for(i=0;i<数组大小;i++)
  5. {
  6.      flag=1;
  7.      for(j=i+1;i<=数组大小;j++)
  8.     {
  9.        if(0==i)sum+=数组[j];
  10.        if(数组[i]>数组[j])
  11.         {
  12.             数组[i]和数组[j]互换;
  13.             flag=0;
  14.          }
  15.       
  16.      }
  17.     if(flag)break;
  18. }
  19. min=数组[0];
  20. max=数组[数组大小-1];
  21. 平均值=sum/数组大小;
  22. 中值=数组[数组大小/2+1];
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-14 01:24:42 | 显示全部楼层
  1. #include <stdio.h>

  2. void show(int d[] , int n)
  3. {
  4.         int i                             ;
  5.         for(i = 0 ; i < n ; i ++) {
  6.                 if(i) printf(" , ")       ;
  7.                 printf("%d" , d[i])       ;               
  8.         }
  9.         printf("\n")                      ;
  10. }

  11. void sort(int d[] , int n)
  12. {
  13.         int i , j , t                     ;
  14.         for(i = 0 ; i < n - 1 ;i ++) {
  15.                 for(j = i + 1 ; j && d[j] < d[j - 1]; j --) {
  16.                         t = d[j]          ;
  17.                         d[j] = d[j - 1]   ;
  18.                         d[j - 1] = t      ;
  19.                 }
  20.         }
  21. }

  22. int main(void)
  23. {
  24.         int d[] = {18 , 22 , 33 , 1 , 5 , 28 , 35 , 4 , 3 , 55 , 108 , 11 , 2 , 6 , 2800 , 88} , i , j , k = 16 , m ;
  25.         show(d , k)                                                                                                 ;
  26.         sort(d , k)                                                                                                 ;
  27.         show(d , k)                                                                                                 ;
  28.         for(i = m = 0 ; i < k ; i ++) m += d[i]                                                                     ;
  29.         printf("最小值:%lf\n" , (double) d[0])                                                                     ;        
  30.         printf("最大值:%lf\n" , (double) d[k - 1])                                                                 ;   
  31.         printf("平均值:%lf\n" , (double) (m * 1.0 / 16))                                                           ;
  32.         if(k % 2) printf("中位数:%lf\n" , (double) d[k / 2])                                                       ;
  33.         else if(k > 1) printf("中位数:%lf\n" , (double) ((d[k / 2 - 1] + d[k / 2]) / 2.0))                         ;
  34.         else if(k == 1) printf("中位数:%lf\n" , (double) d[0])                                                     ;
  35. }
复制代码

        编译、运行实况:
  1. D:\00.Excise\C>g++ -o x x.c

  2. D:\00.Excise\C>x
  3. 18 , 22 , 33 , 1 , 5 , 28 , 35 , 4 , 3 , 55 , 108 , 11 , 2 , 6 , 2800 , 88
  4. 1 , 2 , 3 , 4 , 5 , 6 , 11 , 18 , 22 , 28 , 33 , 35 , 55 , 88 , 108 , 2800
  5. 最小值:1.000000
  6. 最大值:2800.000000
  7. 平均值:201.187500
  8. 中位数:20.000000

  9. D:\00.Excise\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-14 12:25:04 | 显示全部楼层
为何复杂化?楼主要求的是 C++ 不是 C
C++ 代码:
  1. #include <bits/stdc++.h>
  2. using namespace std;

  3. int main(){
  4.     int arr[10] = {1, 6, 8, 7, 9, 4, 3, 5, 2, 10};
  5.     int max = 0, min = 32767;
  6.     float mid;
  7.    
  8.     for(int i=0; i<10; i++){
  9.         max = arr[i]>max ? arr[i] : max;
  10.         min = arr[i]<min ? arr[i] : min;
  11.     }
  12.     mid = (float)(max+min)/2;
  13.    
  14.     cout << "max: " << max << "\nmin: " << min << setprecision(2) << "\nmid: " << mid << endl;
  15.    
  16.     return 0;
  17. }
复制代码
  1. max: 10
  2. min: 1
  3. mid: 5.5
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-19 19:13:11 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-26 05:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表