1. c语言来大神 某次唱歌比赛,有20名学生参赛,进行实时打分排名,每一名学生唱歌结束后打分,然后
#include<stdio.h>
#include<stdlib.h>
struct stud
{
char name[10];
int point;
}
;
void main()
{
int j=0,i=0,k=0;
stud std[20];
printf("请输入20个学生的姓名,每个名字输入完成后按回车输入下一个,名字不要超过10个字符\n");
for(j=0;j<20;j++)
{
scanf("%s",std[j].name);
std[j].point=0;
}
for(j=1;j<21;j++)
{
printf("请为第%d个参赛者打分\n",j);
scanf("%d",&std[j-1].point);
printf("目前为止的排名为:\n");
for(i=0;i<j;i++)
{
for(k=i+1;k<j;k++)
{
if(std[i].point<std[k].point)
{
char tempname[10];
int temp,p;
for(p=0;p<10;p++)
{
tempname[p]= std[i].name[p];
std[i].name[p]=std[k].name[p];
std[k].name[p]=tempname[p];
}
temp=std[i].point;
std[i].point=std[k].point;
std[k].point=temp;
}
}
}
for(i=0;i<j;i++)
printf("%s\n",std[i].name);
printf("\n");
}
}
首先输入20个学生姓名,每输入一个按回车输入下一个
提示为第i个选手打分后,输入分数
将自动显示表演完的学生的排名。
2. c语言编程:歌唱比赛评委评分系统
#include <stdio.h>
#include<string.h>
void main()
{
int i,j,m,n;
float num,xgrade[100],max,min,pgrade[100],pdis[100];
char str[10],xname[100][10],pname[100][10];
printf("请输入评委人数:");
scanf("%d",&m);
printf("\n请分别输入评委姓名:\n");
for(i=0;i<m;i++)
{
scanf("%s",&pname[i]);//评委姓名
pgrade[i]=0;//评委给的分
pdis[i]=0;//评委给分和最后结果的差距
}
printf("\n请输入选手人数:");
scanf("%d",&n);
printf("\n请分别输入选手姓名:\n");
for(i=0;i<n;i++)
{
scanf("%s",&xname[i]);//选手姓名
xgrade[i]=0;//选手成绩
}
for(i=0;i<n;i++)
{
max=0;min=10;//评委给选手的最大最小成绩
printf("\n请给选手%s打分!",xname[i]);
for(j=0;j<m;j++)
{
printf("\n%s老师给的分数为:",pname[j]);
scanf("%f",&pgrade[j]);
xgrade[i]+=pgrade[j];//加到该选手的总分数中
if(max<pgrade[j])
max=pgrade[j];
if(min>pgrade[j])
min=pgrade[j];
}
xgrade[i]=(xgrade[i]-max-min)/(m-2);//最后成绩为总成绩-最高分-最低分,然后平均
for(j=0;j<m;j++)//算出每个评委本次评分和最终成绩的差,加到pdis中保存起来
{
pdis[j]+=pgrade[j]>xgrade[i]?(pgrade[j]-xgrade[i]):(xgrade[i]-pgrade[j]);
}
}
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(xgrade[j]<xgrade[j+1])
{
strcpy(str,xname[j]);
strcpy(xname[j],xname[j+1]);
strcpy(xname[j+1],str);
num=xgrade[j];
xgrade[j]=xgrade[j+1];
xgrade[j+1]=num;
}
printf("\n选手按名次排名为:\n");
printf("选手名\t得分\n");
for(i=0;i<n;i++)
printf("%s\t%f\n",xname[i],xgrade[i]);
for(i=0;i<m-1;i++)
for(j=0;j<m-1-i;j++)
if(pdis[j]>pdis[j+1])
{
strcpy(str,pname[j]);
strcpy(pname[j],pname[j+1]);
strcpy(pname[j+1],str);
num=pdis[j];
pdis[j]=pdis[j+1];
pdis[j+1]=num;
}
printf("\n评委按名次排名为:\n");
printf("评委名\t差分\n");
for(i=0;i<m;i++)
printf("%s\t%f\n",pname[i],pdis[i]);
}
vae.la
3. 用C语言统计歌唱比赛成绩。
#include<stdio.h>
#defineN7
#defineM10
structSing
{
charname[20];
intscore[10];
floataver;
}sing[10];
voidmywrite()
{
inti=0,j=0,max=0,min,sum;
for(i=0;i<M;i++)
{min=0;
max=0;
sum=0;
printf("请输入第%d个选手的姓名 ",i+1);
scanf("%s",sing[i].name);
printf("请依次输入成绩: ");
scanf("%d",&sing[i].score[0]);
min=sing[i].score[0];
sum=min;
for(j=1;j<N;j++)
{
scanf("%d",&sing[i].score[j]);
sum=sum+sing[i].score[j];
if(max<sing[i].score[j])
{
max=sing[i].score[j];
}
if(min>sing[i].score[j])
min=sing[i].score[j];
}
sing[i].aver=(sum-max-min)/5.0;
}
}
voidsort()
{
inti,j;
structSings;
for(i=0;i<M;i++)
for(j=0;j<M-1-i;j++)
{
if(sing[j].aver<sing[j+1].aver)
{
s=sing[j];
sing[j]=sing[j+1];
sing[j+1]=s;
}
}
}
intmain()
{
mywrite();
sort();
for(inti=0;i<M;i++)
{
printf("%-15s%f ",sing[i].name,sing[i].aver);
}
return0;
}
4. C语言编1个歌手大赛的排名
纯C语言,结尾附上程序运行结果 #include <stdio.h> #define N 50 struct XuanShou { int ID; float mark[N]; float max_m,min_m,aver_m; }; void (struct XuanShou *m_to, struct XuanShou *m_from) { int i; for(i=0; i<N; i++) m_to->mark[i] = m_from->mark[i]; m_to->ID = m_from->ID; m_to->max_m = m_from->max_m; m_to->min_m = m_from->min_m; m_to->aver_m = m_from->aver_m; } int main() { struct XuanShou xs[N]; struct XuanShou temp; float mark[N],sum_m,max_m,min_m; int i,j,nPW,nXS; printf("请输入评委个数(至少3个):"); scanf("%d",&nPW); if(nPW<3) return 0; printf("\n请输入选手个数:"); scanf("%d",&nXS); if(nXS==0) return 0; printf("\n请输入选手得分,以制表符间隔:\n"); printf("\n选手"); for(i=0; i<nPW; i++) printf("\t评委%d",i+1); for(i=0; i<nXS; i++) { printf("\n %d号\t",i+1); xs[i].ID = i+1; sum_m = 0; for(j=0; j<nPW; j++) { scanf("%f",&mark[j]); xs[i].mark[j] = mark[j]; sum_m += mark[j]; } max_m = min_m = mark[0]; for(j=0; j<nPW; j++) //求某一选手的最高得分与最低得分 { if(xs[i].mark[j]>max_m) max_m = xs[i].mark[j]; else if(xs[i].mark[j]<min_m) min_m = xs[i].mark[j]; } sum_m = sum_m-(max_m+min_m); xs[i].max_m = max_m; xs[i].min_m = min_m; xs[i].aver_m = sum_m/(float)(nPW-2); //某选手最终得分 } for(i=0; i<nXS; i++) //冒泡排序 { for(j=nXS-1; j>i; j--) { if(xs[j].aver_m > xs[j-1].aver_m) { (&temp,&xs[j]); (&xs[j],&xs[j-1]); (&xs[j-1],&temp); } } } printf("\n歌手大赛结果如下:\n"); printf("\n\t选手\t最高分\t最低分\t最终得分"); for(i=0; i<nXS; i++) { printf("\n第%d名:",i+1); printf("\t%d号",xs[i].ID); printf("\t%.2f",xs[i].max_m); printf("\t%.2f",xs[i].min_m); printf("\t%.2f\n",xs[i].aver_m); } return 0; } //程序运行结果如下 /* 请输入评委个数(至少3个):4 请输入选手个数:6 请输入选手得分,以制表符间隔: 选手 评委1 评委2 评委3 评委4 1号 6.8 6.9 6.6 7.0 2号 7.2 7.4 7.5 7.8 3号 6.4 6.8 6.8 6.4 4号 7.5 7.7 7.9 8.0 5号 8.3 8.6 8.5 8.5 6号 8.8 8.8 9.0 8.6 歌手大赛结果如下: 选手 最高分 最低分 最终得分 第1名: 6号 9.00 8.60 8.80 第2名: 5号 8.60 8.30 8.50 第3名: 4号 8.00 7.50 7.80 第4名: 2号 7.80 7.20 7.45 第5名: 1号 7.00 6.60 6.85 第6名: 3号 6.80 6.40 6.60 Press any key to continue */
5. C++歌唱大赛选手成绩计算
#defineNUM10
voidmain()
{
//变量初始化
intmax=-1;
intmin=999;
intsum=0;
//循环
cout<<"请输入10个评委的打分:";
for(inti=0;i<NUM;i++)
{
intx;
cin>>x;
//选择
if(x>max)
max=x;
if(x<min)
min=x;
sum+=x;
}
sum=sum-max-min;//去掉最高分和最低分
cout<<"该选手的最后得分:"<<(float)sum/(NUM-2)<<endl;
}
//sum必须初始化,否则可能会是一个随机的值,具体跟编译器有关,有的会设为0
6. c语言 歌唱比赛评分
#include <stdio.h>
#include<string.h>
void main()
{
int i,j,m,n;
float num,xgrade[100],max,min,pgrade[100],pdis[100];
char str[10],xname[100][10],pname[100][10];
printf("请输入评委人数:");
scanf("%d",&m);
printf("\n请分别输入评委姓名:\n");
for(i=0;i<m;i++)
{
scanf("%s",&pname[i]);//评委姓名
pgrade[i]=0;//评委给的分
pdis[i]=0;//评委给分和最后结果的差距
}
printf("\n请输入选手人数:");
scanf("%d",&n);
printf("\n请分别输入选手姓名:\n");
for(i=0;i<n;i++)
{
scanf("%s",&xname[i]);//选手姓名
xgrade[i]=0;//选手成绩
}
for(i=0;i<n;i++)
{
max=0;min=10;//评委给选手的最大最小成绩
printf("\n请给选手%s打分!",xname[i]);
for(j=0;j<m;j++)
{
printf("\n%s老师给的分数为:",pname[j]);
scanf("%f",&pgrade[j]);
xgrade[i]+=pgrade[j];//加到该选手的总分数中
if(max<pgrade[j])
max=pgrade[j];
if(min>pgrade[j])
min=pgrade[j];
}
xgrade[i]=(xgrade[i]-max-min)/(m-2);//最后成绩为总成绩-最高分-最低分,然后平均
for(j=0;j<m;j++)//算出每个评委本次评分和最终成绩的差,加到pdis中保存起来
{
pdis[j]+=pgrade[j]>xgrade[i]?(pgrade[j]-xgrade[i]):(xgrade[i]-pgrade[j]);
}
}
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(xgrade[j]<xgrade[j+1])
{
strcpy(str,xname[j]);
strcpy(xname[j],xname[j+1]);
strcpy(xname[j+1],str);
num=xgrade[j];
xgrade[j]=xgrade[j+1];
xgrade[j+1]=num;
}
printf("\n选手按名次排名为:\n");
printf("选手名\t得分\n");
for(i=0;i<n;i++)
printf("%s\t%f\n",xname[i],xgrade[i]);
for(i=0;i<m-1;i++)
for(j=0;j<m-1-i;j++)
if(pdis[j]>pdis[j+1])
{
strcpy(str,pname[j]);
strcpy(pname[j],pname[j+1]);
strcpy(pname[j+1],str);
num=pdis[j];
pdis[j]=pdis[j+1];
pdis[j+1]=num;
}
printf("\n评委按名次排名为:\n");
printf("评委名\t差分\n");
for(i=0;i<m;i++)
printf("%s\t%f\n",pname[i],pdis[i]);
}
7. 一、题目:设计一个歌唱比赛排名的程序(C语言)
...分都不给~~
8. c语言编程 歌手比赛成绩统计程序
我写了个,你把邮箱告诉我,发给你参考下!
9. 用C语言编写一个歌唱比赛成绩统计程序
#include "stdio.h"
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);//以上代码没写并列情况
}
10. C语言唱歌比赛评分
#include <stdio.h>
#include<string.h>
void main()
{
int i,j,m,n;
float num,xgrade[100],max,min,pgrade[100],pdis[100];
char str[10],xname[100][10],pname[100][10];
printf("请输入评委人数:");
scanf("%d",&m);
printf("\n请分别输入评委姓名:\n");
for(i=0;i<m;i++)
{
scanf("%s",&pname[i]);//评委姓名
pgrade[i]=0;//评委给的分
pdis[i]=0;//评委给分和最后结果的差距
}
printf("\n请输入选手人数:");
scanf("%d",&n);
printf("\n请分别输入选手姓名:\n");
for(i=0;i<n;i++)
{
scanf("%s",&xname[i]);//选手姓名
xgrade[i]=0;//选手成绩
}
for(i=0;i<n;i++)
{
max=0;min=10;//评委给选手的最大最小成绩
printf("\n请给选手%s打分!",xname[i]);
for(j=0;j<m;j++)
{
printf("\n%s老师给的分数为:",pname[j]);
scanf("%f",&pgrade[j]);
xgrade[i]+=pgrade[j];//加到该选手的总分数中
if(max<pgrade[j])
max=pgrade[j];
if(min>pgrade[j])
min=pgrade[j];
}
xgrade[i]=(xgrade[i]-max-min)/(m-2);//最后成绩为总成绩-最高分-最低分,然后平均
for(j=0;j<m;j++)//算出每个评委本次评分和最终成绩的差,加到pdis中保存起来
{
pdis[j]+=pgrade[j]>xgrade[i]?(pgrade[j]-xgrade[i]):(xgrade[i]-pgrade[j]);
}
}
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(xgrade[j]<xgrade[j+1])
{
strcpy(str,xname[j]);
strcpy(xname[j],xname[j+1]);
strcpy(xname[j+1],str);
num=xgrade[j];
xgrade[j]=xgrade[j+1];
xgrade[j+1]=num;
}
printf("\n选手按名次排名为:\n");
printf("选手名\t得分\n");
for(i=0;i<n;i++)
printf("%s\t%f\n",xname[i],xgrade[i]);
for(i=0;i<m-1;i++)
for(j=0;j<m-1-i;j++)
if(pdis[j]>pdis[j+1])
{
strcpy(str,pname[j]);
strcpy(pname[j],pname[j+1]);
strcpy(pname[j+1],str);
num=pdis[j];
pdis[j]=pdis[j+1];
pdis[j+1]=num;
}
printf("\n评委按名次排名为:\n");
printf("评委名\t差分\n");
for(i=0;i<m;i++)
printf("%s\t%f\n",pname[i],pdis[i]);
}