C++编程小白求教

[复制链接]
查看11 | 回复5 | 2021-1-27 06:52:07 | 显示全部楼层 |阅读模式
如题
编写一程序统计参赛选手的得分,计分标准为去掉一个最高分和一个最低分后,对剩余得分求平均值。要求首先从键盘输入评委的个数num,然后输入num个分数(分数为小于等于10的一个正实数),输出最终得分。
请帮我看一下我的程序有什么问题,谢谢。

#include
usingnamespacestd;
intmain(){
intnum,i;
floatsum=0,n,p=0,q=0;
cin>>num;
for(i=1;i>n;
if(pn)
{
q=n;
}
sum=sum+n;

}
sum=(sum-p-q);
sum=sum/(num-2);
cout -->
回复

使用道具 举报

千问 | 2021-1-27 06:52:07 | 显示全部楼层
if(pn)
{
q=n;
}
你的q初始值为0,无论怎么输入非负的分数,q都小于n,第二个条件进去不了,q一直不会更新,一直为0,不会得到输入的最小值。
这种错误,你设置一个断点在for循环那里,自己单步调试看看变量值,就能看出q的值有问题了。应该自己调试程序的,而不是直接问别人哦。

回复

使用道具 举报

千问 | 2021-1-27 06:52:07 | 显示全部楼层
可以先把输入的第一个分数赋值给p,q

intmain()
{
intnum,i;
floatsum=0,n,p=0,q=0;
cin>>num;
while(num>num;
}
cin>>n;//输入第一个分数
p=q=n;
sum+=n;
for(i=1;i!=num;++i)
{
cin>>n;
if(pn)
{
q=n;
}
sum+=n;
}
sum=(sum-p-q);
sum=sum/(num-2);
cout
回复

使用道具 举报

千问 | 2021-1-27 06:52:07 | 显示全部楼层
引用1楼就叫我小王吧的回复:if(pn)
{
q=n;
}
你的q初始值为0,无论怎么输入非负的分数,q都小于n,第二个条件进去不了,q一直不会更新,一直为0,不会得到输入的最小值。
这种错误,你设置一个断点在for循环那里,自己单步调试看看变量值,就能看出q的值有问题了。应该自己调试程序的,而不是直接问别人哦。

谢谢,我确实太懒了,看来以后要勤快点了。
回复

使用道具 举报

千问 | 2021-1-27 06:52:07 | 显示全部楼层
引用3楼weixin_45760940的回复:Quote: 引用1楼就叫我小王吧的回复:if(pn)
{
q=n;
}
你的q初始值为0,无论怎么输入非负的分数,q都小于n,第二个条件进去不了,q一直不会更新,一直为0,不会得到输入的最小值。
这种错误,你设置一个断点在for循环那里,自己单步调试看看变量值,就能看出q的值有问题了。应该自己调试程序的,而不是直接问别人哦。

谢谢,我确实太懒了,看来以后要勤快点了。

em……不客气。我没有说你懒的意思哈……你也别这样想自己……


回复

使用道具 举报

千问 | 2021-1-27 06:52:07 | 显示全部楼层
学习下,同样是小白
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行