C语言题目“给出互不相等的五个正整数a,b,c,d,e,求他们的中位数x,平均数y“,我的代码错在哪里?

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
int a,b,c,d,e,r,s,x,q,t;
double y;
scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);

if(a>b){
r=a;
s=b;
}
if(b>a){
r=b;
s=a;
}
if(c>r){
x=s;
s=r;
r=c;
}
if(r>c&&c>s){
x=s;
s=c;
}
if(s>c){
x=c;
}
if(d>r){
q=x;
x=s;
s=r;
r=d;
}
if(r>d&&d>s){
q=c;
x=s;
s=d;
}
if(s>d&&d>x){
q=c;
x=d;
}
if(x>d){
q=d;
}
if(e>r){
t=q;
q=x;
x=s;
s=r;
r=e;
}
if(r>e&&e>s)
{
t=q;
q=x;
x=s;
s=e;
}
if(s>e&&e>x){
t=q;
q=x;
x=e;
}
if(x>e&&e>q){
t=q;
q=e;
}
if(q>e){
t=e;
}

y=(double)(r+s+x+q+t)/5;
printf("%d\n",x);
printf("%.2f",y);

return 0;
}

第1个回答  2019-03-15
看你的代码好累呀。。。说一下我的思路吧,求平均数可以这样
int sum = 0;
int ave = 0;
sum = a+b+c+d+e;
ave = sum / 5;
求中位数可以这样
int max = 0;
int min = 0;
int array[5] = {0};
int buffer = 0;
array[0] = a;array[1] = b;array[2] = c;array[3] = d;array[4] = e;
for(char i = 0;i<5;i++)
{
if(max < array[i])

{
max = array[i];
}
if(min > array[i])
{
min = array[i];
}
}
int max1= 0;
int min1= 0;
for(char i = 0;i<5;i++)
{
if(array[i] == max || array[i] ==min)
contine;
if(max1 < array[i])

{
max1 = array[i];
}
if(min1 > array[i])
{
min1 = array[i];
}
}
int result = 0;
for(char i = 0;i<5;i++)
{
if(array[i] == max || array[i] ==min || array[i] == max1 || array[i] ==min1)
contine;
return array[i];
}本回答被提问者采纳
第2个回答  2019-03-15
平均数:一组数据的总和除以这组数据个数所得到的商叫这组数据的平均数。
中位数:将一组数据按大小顺序排列,处在最中间位置的一个数叫做这组数据的中位数。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网