帮看下哪里有问题。。。

qq243803 2011-03-21 09:14:55

在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1到100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。



#include "stdio.h"
void main ()
{
int i=1;
float max=1,min=100,x,sum;
printf("输入十个1-100的数:");
while (i<10)
{
scanf("%f",&x);
if (x>max)
{
max=x;
}
else if (x<min)
{
min=x;
}

sum+=x;
i++;

}
printf("均分为%f",(sum-max-min)/8);

}
...全文
70 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
善水999 2011-03-21
  • 打赏
  • 举报
回复
用if...else if...的话,在判断if语句成立后就不再执行else if语句了,比如你输入10,很明显10>1,所以执行if语句,这时max=10;但else if就不再执行了,所以min任然等于1,而不与10作比较了[Quote=引用 9 楼 qq243803 的回复:]

不是很明白啊,我用if else if 感觉一样的嘛。。。
- -引用 8 楼 elegant87 的回复:
C/C++ code

//你在查找min的时候是在找max的条件下的max 跟min没有关系的。独立查找
#include "stdio.h"

void main ()
{
int i=1;
float max=1,min=100,x,sum=0;
print……
[/Quote]
驴被脑袋踢了 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hhh_hao 的回复:]

sum没赋初值
[/Quote]
sum没赋初值,x最好也赋初值
另外,你i=1,判断条件是<10,所以你只输入了9个数,所以结果和你期望的不一样
AAAmaomaochong 2011-03-21
  • 打赏
  • 举报
回复
要求的去掉最高分和最低分好像没有实现吧。
qq243803 2011-03-21
  • 打赏
  • 举报
回复
懂了懂了 感谢![Quote=引用 8 楼 elegant87 的回复:]
C/C++ code

//你在查找min的时候是在找max的条件下的max 跟min没有关系的。独立查找
#include "stdio.h"

void main ()
{
int i=1;
float max=1,min=100,x,sum=0;
printf("输入十个1-100的数:");
while (i<=10)
{
……
[/Quote]
qq243803 2011-03-21
  • 打赏
  • 举报
回复
不是很明白啊,我用if else if 感觉一样的嘛。。。
- -[Quote=引用 8 楼 elegant87 的回复:]
C/C++ code

//你在查找min的时候是在找max的条件下的max 跟min没有关系的。独立查找
#include "stdio.h"

void main ()
{
int i=1;
float max=1,min=100,x,sum=0;
printf("输入十个1-100的数:");
while (i<=10)
{
……
[/Quote]
elegant87 2011-03-21
  • 打赏
  • 举报
回复

//你在查找min的时候是在找max的条件下的max 跟min没有关系的。独立查找
#include "stdio.h"

void main ()
{
int i=1;
float max=1,min=100,x,sum=0;
printf("输入十个1-100的数:");
while (i<=10)
{
scanf("%f",&x);
//找出最大值
if (x>max)
{
max=x;
}
//找出最小值
if (x<min)
{
min=x;
}
sum+=x;
i++;
}
printf("%f\n%f\n",max,min);
printf("均分为:%f",(sum-max-min)/8);
}

qq243803 2011-03-21
  • 打赏
  • 举报
回复
#include "stdio.h"
void main ()
{
int i=1;
float max=1,min=100,x,sum=0;
printf("输入十个1-100的数:");
while (i<=10)
{
scanf("%f",&x);
if (x>max)
{
max=x;
}
else if (x<min)
{
min=x;
}

sum+=x;
i++;

}
printf("均分为:%f",(sum-max-min)/8);

}
这个 哪里不对啊?
qq243803 2011-03-21
  • 打赏
  • 举报
回复
改了 还是不行啊
我输入1 2 3 4 5 6 7 8 9 10 能得到均值5.5
但是输入10 20 30 40 50 60 70 80 90 100 得不到55
- -
what's wrong?[Quote=引用 5 楼 xuexinantjyu 的回复:]
确实是楼主以前发过的帖子。。。
int i = 0,sum = 0;
[/Quote]
xuexinantjyu 2011-03-21
  • 打赏
  • 举报
回复
确实是楼主以前发过的帖子。。。
int i = 0,sum = 0;
qq243803 2011-03-21
  • 打赏
  • 举报
回复
对的 我觉得那个帖子的12楼的不错,就改了改,但是水平实在不行,照他的搬还是不行 郁闷[Quote=引用 2 楼 masmaster 的回复:]
这是楼主曾经发过的帖子吧
http://topic.csdn.net/u/20110317/22/434839bb-1dc4-4507-af51-8fe6c167eb2a.html
[/Quote]
hhh_hao 2011-03-21
  • 打赏
  • 举报
回复
sum没赋初值
masmaster 2011-03-21
  • 打赏
  • 举报
回复
hhh_hao 2011-03-21
  • 打赏
  • 举报
回复
max=1,min=100, 你的最高分和最低分初值不对

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧