求c++中一个数组中的最大值,最小值,平均值和中值,谢谢了
求c++中一个数组中的最大值,最小值,平均值和中值,谢谢了 把数组元素列出来一下 嘉岳呀 发表于 2021-10-13 20:18把数组元素列出来一下
{1 6 8 7 9 4 3 5 2 10} 本帖最后由 jhq999 于 2021-10-13 21:28 编辑
max=min=0;
bool flag=0;
sum=数组;
for(i=0;i<数组大小;i++)
{
flag=1;
for(j=i+1;i<=数组大小;j++)
{
if(0==i)sum+=数组;
if(数组>数组)
{
数组和数组互换;
flag=0;
}
}
if(flag)break;
}
min=数组;
max=数组[数组大小-1];
平均值=sum/数组大小;
中值=数组[数组大小/2+1];
#include <stdio.h>
void show(int d[] , int n)
{
int i ;
for(i = 0 ; i < n ; i ++) {
if(i) printf(" , ") ;
printf("%d" , d) ;
}
printf("\n") ;
}
void sort(int d[] , int n)
{
int i , j , t ;
for(i = 0 ; i < n - 1 ;i ++) {
for(j = i + 1 ; j && d < d; j --) {
t = d ;
d = d ;
d = t ;
}
}
}
int main(void)
{
int d[] = {18 , 22 , 33 , 1 , 5 , 28 , 35 , 4 , 3 , 55 , 108 , 11 , 2 , 6 , 2800 , 88} , i , j , k = 16 , m ;
show(d , k) ;
sort(d , k) ;
show(d , k) ;
for(i = m = 0 ; i < k ; i ++) m += d ;
printf("最小值:%lf\n" , (double) d) ;
printf("最大值:%lf\n" , (double) d) ;
printf("平均值:%lf\n" , (double) (m * 1.0 / 16)) ;
if(k % 2) printf("中位数:%lf\n" , (double) d) ;
else if(k > 1) printf("中位数:%lf\n" , (double) ((d + d) / 2.0)) ;
else if(k == 1) printf("中位数:%lf\n" , (double) d) ;
}
编译、运行实况:
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
18 , 22 , 33 , 1 , 5 , 28 , 35 , 4 , 3 , 55 , 108 , 11 , 2 , 6 , 2800 , 88
1 , 2 , 3 , 4 , 5 , 6 , 11 , 18 , 22 , 28 , 33 , 35 , 55 , 88 , 108 , 2800
最小值:1.000000
最大值:2800.000000
平均值:201.187500
中位数:20.000000
D:\00.Excise\C> 为何复杂化?楼主要求的是 C++ 不是 C
C++ 代码:#include <bits/stdc++.h>
using namespace std;
int main(){
int arr = {1, 6, 8, 7, 9, 4, 3, 5, 2, 10};
int max = 0, min = 32767;
float mid;
for(int i=0; i<10; i++){
max = arr>max ? arr : max;
min = arr<min ? arr : min;
}
mid = (float)(max+min)/2;
cout << "max: " << max << "\nmin: " << min << setprecision(2) << "\nmid: " << mid << endl;
return 0;
}
max: 10
min: 1
mid: 5.5 jhq999 发表于 2021-10-13 21:24
谢谢
页:
[1]