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]);
}