当前位置:编程学习 > C/C++ >>

编写一个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语言?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,