编写一个c语言程序。
题目为: 有十个选手参加歌唱比赛,十个裁判对每个选手的演唱进行打分,去掉一个最高分,去掉一个最低分,剩下分数的平均值作为每位选手最后的成绩。
要求:
(1)采用结构体定义每个选手的参赛编号,姓名以及十个裁判打出的分数;
(2)从键盘输入每个选手的相关信息:参赛编号,姓名和十个得分;
(3)计算每位选手的最后得分,并按分数由高到低排序;
(4)查询功能:输入参赛选手的编号或姓名,便可输出该选手的得分以及排名;
以上功能采用菜单操作方式,即从键盘输入1到3这三个数,分别完成以上(2)到(4)的功能。
追问:是你自己写的吗?
答案:/*有十个选手参加歌唱比赛,十个裁判对每个选手的演唱进行打分,
去掉一个最高分,去掉一个最低分,剩下分数的平均值作为每位选手最后的成绩。 要求:
(1)采用结构体定义每个选手的参赛编号,姓名以及十个裁判打出的分数;
(2)从键盘输入每个选手的相关信息:参赛编号,姓名和十个得分;
(3)计算每位选手的最后得分,并按分数由高到低排序;
(4)查询功能:输入参赛选手的编号或姓名,便可输出该选手的得分以及排名;
以上功能采用菜单操作方式,即从键盘输入1到3这三个数,分别完成以上(2)到(4)的功能。
*/
#include "stdio.h"
#include "windows.h"
struct singger
{
int sc0;
int sc1;
int sc2;
int sc3;
int sc4;
int sc5;
int sc6;
int sc7;
int sc8;
int sc9;
int last;
int paiming;
char number[10];
char name[10];
}sg[10];
void init()
{
int i=0;
struct singger nn;
printf("需要操作哪位歌手?(1-10)\n");
scanf("%d",&i);
nn=sg[i-1];
printf("请输入名字:\n");
scanf("%s",&nn.name);
printf("请输入编号:\n");
scanf("%s",&nn.number);
printf("请输入第1个分数");
scanf("%d",&nn.sc0);
printf("请输入第2个分数");
scanf("%d",&nn.sc1);
printf("请输入第3个分数");
scanf("%d",&nn.sc2);
printf("请输入第4个分数");
scanf("%d",&nn.sc3);
printf("请输入第5个分数");
scanf("%d",&nn.sc4);
printf("请输入第6个分数");
scanf("%d",&nn.sc5);
printf("请输入第7个分数");
scanf("%d",&nn.sc6);
printf("请输入第8个分数");
scanf("%d",&nn.sc7);
printf("请输入第9个分数");
scanf("%d",&nn.sc8);
printf("请输入第10个分数");
scanf("%d",&nn.sc9);
}
void calc()
{
int i=0,ii,j,num[10],temp;
struct singger nn;
for(i=0;i<10;i++)
{
nn=sg[i];
num[0]=nn.sc0;
num[1]=nn.sc1;
num[2]=nn.sc2;
num[3]=nn.sc3;
num[4]=nn.sc4;
num[5]=nn.sc5;
num[6]=nn.sc6;
num[7]=nn.sc7;
num[8]=nn.sc8;
num[9]=nn.sc9;
for (ii=0;ii<9;ii++)
{
for (j=0;j<9;j++)
{
if (num[j+i]>num[j])
{temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",num[9],num[8],num[7],num[6],num[5],num[4],num[3],num[2],num[1],num[0]);
nn.last=num[8]+num[7]+num[6]+num[5]+num[4]+num[3]+num[2]+num[1];
nn.last=nn.last/8;
}
}
void singger_sort()
{
int num[10],i,j,temp;
for (i=0;i<10;i++)
{
num[i]=sg[i].last;
}
for (i=0;i<9;i++)
{
for (j=0;j<9;j++)
{
if (num[j+i]>num[j])
{temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
for (i=0;i<10;i++)
{
for (j=0;j<10;j++)
{
if (sg[i].last==num[j])
{
sg[i].paiming=j;
}
}
}
for (i=0;i<10;i++)
{
printf("第%d名: %d分\n",i+1,num[i]);
}
}
void display(singger nn)
{
printf("姓名:%s\n",nn.name);
printf("编号:%s\n",nn.number);
printf("第1得分:%d,第2得分:%d,第3得分:%d,第4得分:%d,第5得分:%d\n",
nn.sc0,nn.sc1,nn.sc2,nn.sc3,nn.sc4);
printf("第6得分:%d,第7得分:%d,第8得分:%d,第9得分:%d,第10得分:%d\n",
nn.sc5,nn.sc6,nn.sc7,nn.sc8,nn.sc9);
printf("最后得分:%d\n",nn.last);
printf("排名:%d\n",nn.paiming);
}
void xmchacun()
{
char xingming[10];
int i;
printf("请输入姓名:\n");
scanf("%s",xingming);
for (i=0;i<=10;i++)
{
if (sg[i].name==xingming)
{
display(sg[i]);
system("pause");
return;
}
if (i==10)
{
printf("无此人物!");
Sleep(1000);
return;
}
}
}
void bhchaxun()
{
char bianhao[10];
int i;
printf("请输入编号:\n");
scanf("%s",bianhao);
for (i=0;i<=10;i++)
{
if (sg[i].number==bianhao)
{
display(sg[i]);
system("pause");
return;
}
if (i==10)
{
printf("无此编号!");
Sleep(1000);
return;
}
}
}
void chaxun()
{
int i=0;
printf("1.按姓名查询 2.按编号查询 ");
scanf("%d",&i);
switch (i)
{
case 1:
xmchacun();
break;
case 2:
bhchaxun();
break;
default:
printf("输入错误!");
}
}
void main()
{
int temp;
while (1)
{
printf("\n\n\n\n\n\n\n\n");
printf(" 1.输入选手信息 2.计算得分 3查询信息\n");
scanf("%d",&temp);
switch (temp)
{
case 1:
init();
break;
case 2:
calc();
singger_sort();
system("pause");
break;
case 3:
chaxun();
break;
default:
printf("输入错误!");
Sleep(1000);
}
system("cls");
}
}
上一个:C语言是什么组成?
下一个:什么是C语言?