
#include<stdioh>
#include<stringh>
int main()
{
int i,n;
double a[1000],s,min,max,sum;
while(~scanf("%d",&n))
{
for(i=0;i<n;i++){
scanf("%lf",&a[i]);
}
sum=0;
min=a[0];
max=a[0];
for(i=0;i<n;i++)//找最小数
{
if(min>=a[i])
min=a[i];
}
for(i=0;i<n;i++)//找最大数
{
if(max<=a[i])
max=a[i];
}
for(i=0;i<n;i++)
{
sum+=a[i];
}
s=(sum-min-max)/(n-2);//求平均数
printf("%2lf\n",s);
}
return 0;
}
主要特点如下:
(1)简洁的语言
C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。
实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
(2)具有结构化的控制语句
C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、ifelse语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。
(3)丰富的数据类型
C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。
楼上回答已经很完美了不过我有一个小小的疑问。如果按楼上的写法,那不是把每个评为给的分数都画出了分类么我个人觉得因该只要画出最后得分的分类哈。只是个人意见我也是新手
这么小改一下其他地方不变。如果理解错了 见笑了哈
p=sort(cj(score));
printf("%c\n",p);
代码如下
#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=0;i<10;i++)
{cin>>a[i];
}
for(b=0;b<10;b++)
{while(a[b]>100||a[b]<0)
{cout<<"选手得分超出规定范围,请第"<<b+1<<"位评委重新打分!"<<endl;
cin>>a[b];
}
}
m=a[0];n=a[0];
for(k=0,c=0;k<9;k++)
{
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=0;p<10;p++)
{f[p]=a[p]-average;
if(f[p]<0) {f[p]=-f[p];}
}
q=f[0];d=f[0];
for(k=0,h=1;k<9;k++)
{
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<stdioh>
void main()
{
float a[10];
float sum=0,ave=0,t;
int i,j;
printf("请输入10个评分:\n");
for(i=0;i<10;i++)
scanf("%f",a[i]);
for(i=0;i<8;i++)
for(j=0;j<8-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=1;i<9;i++)
{
sum+=a[i];
}
ave=sum/(i-1);
printf("去掉一个最高分:%g,去掉一个最低分:%g,最后得分%g\n",a[9],a[0],ave);
}
#include "stdioh"const int LEN=30,M=100,N=100; typedef struct { int num;//抽签号码 char name[LEN];//姓名 float score;//得分 } player; player players[M];//歌手信息int a[M][N];//评委打分信息int m,n;//歌手和评委数量//输入歌手信息和评委打分信息void input(void){ int i,j;printf("歌手数量:"); scanf("%d",&m); printf("评委数量:"); scanf("%d",&n); for(i=0;i<m;i++) { players[i]num=i+1; printf("第%d个歌手的姓名:",i+1); scanf("%d",&players[i]name); printf("第%d个歌手的评委打分:",i+1); for(j=0;j<n;j++) { scanf("%d",&a[i][j]); } }}//求平均值(去掉一个最高分,去掉一个最低高分,求出其余n-2个分数的平均值 void calculate(void){ float max,min; int i,j; for(i=0;i<m;i++) { max=min=players[i]score=a[i][0]; for(j=1;j<n;j++) { players[i]score+=a[i][j]; if(max<a[i][j]) { max=a[i][j]; } if(min>a[i][j]) { min=a[i][j]; } } if(n>2) { players[i]score=(players[i]score-max-min)/(n-2); } else if(n>0) { players[i]score/=n; } } }//对各个选手的得分,用冒泡法排序 //如果用快速排序或堆排序,把这段改写一下就行了void sort(void){ int i,j; for(i=0;i<m-1;i++) { for(j=m-1;j>i;j--) { if(players[j]score>players[j-1]score) { player tmp; tmp=players[j]; players[j]=players[j-1]; players[j-1]=tmp; } } } }//显示所有原始数据void show_origin(void){ int i,j; printf("\n"); for(i=0;i<m;i++) { printf("抽签号码:%d ",players[i]num);; printf("姓名:%d ",players[i]name); printf("评委打分:"); for(j=0;j<n;j++) { printf("%d ",a[i][j]); } printf("\n"); } }//显示所有歌手的信息 void show_player(void){ int i; printf("\n"); for(i=0;i<m;i++) { printf("抽签号码:%d ",players[i]num); printf("姓名:%d ",players[i]name); printf("得分:%f\n",players[i]score); } }//显示获奖歌手的信息 int main() { input(); show_origin(); calculate(); show_player(); sort(); return 0; }
#include "stdioh"
void main()
{
int i,Max=-1,Min=999,Score,x,y;
double Sum=0,a[10],Max2=-1,Min2=999,z;
printf("练习30题_6:歌星比赛评分:\n");
for(i=1;i<=10;i++)
{
printf("第%d位评委打分:\n",i);
scanf("%d",&Score);
a[i]=Score;
Sum+=Score;
if(Score>Max)Max=Score;
if(Score<Min)Min=Score;
}
printf("%s%d\n%s%d\n%s%f\n","去掉一个最高分",Max,"去掉一个最低分",Min,"得出的分数为:",(Sum-Min-Max)/8);
z=(Sum-Min-Max)/8;
for(i=1;i<=10;i++)
{
if(a[i]-z>0)//等于0就是差距最小的了所以不用在max上
if(a[i]-z>Max2)
{
Max2=a[i]-z;
x=i;
}
else if (z-a[i]>0)
if(z-a[i]>Max2)
{
Max2=z-a[i];
x=i;
}
if(a[i]-z>=0)
if(a[i]-z<Min2)
{
Min2=a[i]-z;
y=i;
}
else if (z-a[i]>=0)
if(z-a[i]<Min2)
{
Min2=z-a[i];
y=i;
}
}
printf("思维延伸:最公平的裁判是:第%d位。\n最不公平的裁判是:第%d位。\n",y,x);//以上代码没写并列情况
}
#include<stdioh>
#include<stdlibh>
int main()
{
int sum,i,j,score[9][5],max,min,maxp,minp;
for(i=1;i<=8;i++)
{
printf("第%d个评委打分:\n",i);
printf("请依次输入该评委给各位歌手的分数(输入顺序表示歌手编号):");
for(j=0;j<5;j++)
{
scanf("%d",&score[i][j]);
}
}
system("cls");
for(j=0;j<5;j++)
{
sum=0;
max=0;
min=100;
for(i=1;i<=8;i++)
{
if(score[i][j]>max)
{
max=score[i][j];
maxp=i;
}
else if(score[i][j]<min)
{
min=score[i][j];
minp=i;
}
sum+=score[i][j];
}
sum=sum-max-min;
printf("第%d个歌手的得分:\n",j+1);
printf("总分:%d\n",sum);
for(i=1;i<=8;i++)
{
if(i==maxp)
printf("第%d个评委的给分为:%d\n",i,max);
else if(i==minp)
printf("第%d个评委的给分为:%d\n",i,min);
else
printf("第%d个评委的给分为:%d\n",i,score[i][j]);
}
printf("\n");
}
return 0;
}
以上就是关于青年歌手大奖赛中,评委会给参赛选手打分。去掉一个最高分和一个最低分,计算平均得分,编程输出得分全部的内容,包括:青年歌手大奖赛中,评委会给参赛选手打分。去掉一个最高分和一个最低分,计算平均得分,编程输出得分、c语言编程,选手打分问题,急!!!!!!!!!!!、C语言:歌星大奖赛中,有十个评委为参赛的选手打分,分数为1-100分,选手最后得分为去掉一个最高分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)