用一条循环完成此题,麻烦高手些给出意见.

来源:百度知道 编辑:UC知道 时间:2024/06/08 07:50:03
有10个评判给选手打分,分数为1~100之间,得分为:去掉1个最高分和一个最低分,剩下8个的平均分.
注意:只用一条循环完成.
#include "stdio.h"
void main()
{
int a[10];
int i=0,max=0,min=a[i],h=0,sum;
int r = 0;
while(r<=9)
{
printf("请评%d判输入选手得分:",r+1);
scanf("%d",&a[i]);
if(a[i] > max)//
{
max = a[i];
h=h+a[i];
}
if(a[i] < min)
{
min = a[i];
}
if(a[i] >= 1 && a[i] <= 100)//判定输入分数是否正确
{
break;
}
else
{
printf("你输入错误,请重新输入");
}
r++;
}
sum=(h-max-min)/8;
printf("选手得分为:%d\n",sum);
}

以上是我写的代码,主要问题出现在判别输入是否正确这里:
if(a[i] >= 1 && a[i] <= 100)//判定输入分数是否正确
{
break;
}
else
{
printf("你输入错误,请重新输入");
}

#include "stdio.h"
void main()
{
int a[10];
int i=0,max=0,min=0,h=0,sum=0;
int r = 0;
while(i<=9)
{
printf("请评%d判输入选手得分:",i+1);
scanf("%d",&a[i]);
if(a[i]< 1||a[i]>100)//判定输入分数是否正确
{
printf("你输入错误,请重新输入");
printf("请评%d判输入选手得分:",i+1);
scanf("%d",&a[i]);

}

if(a[i] > max)//
{
max = a[i];
// h=h+a[i];
}
if(a[i] < min)
{
min = a[i];
}
h=h+a[i];
i++;

}
sum=(h-max-min)/8;
// printf("总分为:%d\n",h);

printf("选手得分为:%d\n",sum);
}

while(r<=9)
{
printf("请评判%d输入选手得分:",r+1);
scanf("%d",&a[i]);
if(a[i] > max)//
{
max = a[i];
h=h+a[i]