代码如下
#include <iostream>
using namespace std
int main()
{int a[10],f[10],i,k,m,n,b,c,y,p,q,d,average,h,g
cout<<"输入十位评委按顺序的打分:"
for(i=0i<10i++)
{cin>>a[i]
}
for(b=0b<10b++)
{while(a[b]>100||a[b]<0)
{cout<<"选手得分超出规定范围,请第"<<b+1<<"位评委重新打分!"<<endl
cin>>a[b]
}
}
m=a[0]n=a[0]
for(k=0,c=0k<9k++)
{
if(m<=a[k+1]) m=a[k+1]
if(n>=a[k+1]) n=a[k+1]
c=c+a[k]
}
c=c+a[9]
y=c-m-n
average=y/8
for(p=0p<10p++)
{f[p]=a[p]-average
if(f[p]<0) {f[p]=-f[p]}
}
q=f[0]d=f[0]
for(k=0,h=1k<9k++)
{
if(q<=f[k+1]) q=f[k+1] ,h=k+2
if(d>=f[k+1]) d=f[k+1],g=k+2
}
cout<<"选手的平均分是"<<average<<endl
cout<<"最公平评委是第"<<g<<"位评委。"<<endl
cout<<"最不公平评委是第"<<h<<"位评委。"<<endl
return 0
}
C语言代码技巧
除代码的可读性之外,程序的执行时间还主要依赖于做决定时所选择的条件结构类型。许多硬件工程师都熟悉简单的if语句的使用。然而,有时工程师可能没有意识到,如果第一个条件不正确,还可以使用else或else if语句。
2、用If/Else替代只用If
If/else if/else语句可能并不永远适用。如果需要检查若干个可能的条件,switch语句可能更合适。这样,处理器可以评估语句,然后从一个答案列表中选择下一步动作,而不用连续地评估一堆条件。
#include<stdio.h>void main()
{ float score[10]
float min,max,ave
float sum=0.0
int i
printf("input 10 score:\n")
for(i=0i<10i++) scanf("%f",&score[i])
printf("\n")
min=score[0]
max=score[0]
for(i=0i<10i++){
sum=sum+score[i]
if(score[i]>max) max=score[i]
if(score[i]<min) min=score[i]
}
ave=(sum-max-min)/8
printf("The max=%f\n",max)
printf("The min=%f\n",min)
printf("The ave=%f\n",ave)
}
float score[10] = {}//存放所有得分,初始为0float min= score[0],max = score[0]//让最小和最大都等于第一个评委
float all = 0,mean//总分和平均分
for(int i = 0i <10++i)
{
printf("输入第%位评审的得分:",i)
scanf("%f",&score[i])
if(score[i] <min) //如果比min小就让最小值等于它
min = score[i]
if(score[i] >max)//如果比max大,就让最大值等于它
max = score[i]
}
for(int i = 0i <10++i)
{
if(score[i] != min &&score[i] != max)//遍历数组,不等于最值就加到总分上
all += score[i]
}
mean = all / 8//得到平均分