C语言:歌星大奖赛中,有十个评委为参赛的选手打分,分数为1-100分,选手最后得分为去掉一个最高分

Python018

C语言:歌星大奖赛中,有十个评委为参赛的选手打分,分数为1-100分,选手最后得分为去掉一个最高分,第1张

代码如下

#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语言代码技巧

1、使用合适的条件语句

除代码的可读性之外,程序的执行时间还主要依赖于做决定时所选择的条件结构类型。许多硬件工程师都熟悉简单的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] = {}//存放所有得分,初始为0

float 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//得到平均分