| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 367 人关注过本帖
标题:请求高手找错误啊~~~~急!!要交.帮我改正过来~~谢谢非常....
只看楼主 加入收藏
冷叶无声
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-6-20
结帖率:33.33%
收藏
已结贴  问题点数:6 回复次数:4 
请求高手找错误啊~~~~急!!要交.帮我改正过来~~谢谢非常....
(歌唱比赛评分)有十个选手参加歌唱比赛,十个裁判对每个选手的演唱进行打分,去掉一个最高分,去掉一个最低分,剩下分数的平均值作为每位选手最后的成绩。
要求:
(1)采用结构体定义每个选手的参赛编号,姓名以及十个裁判打出的分数;
(2)从键盘输入每个选手的相关信息:参赛编号,姓名和十个得分;
(3)计算每位选手的最后得分,并按分数由高到低排序;
(4)查询功能:输入参赛选手的编号或姓名,便可输出该选手的得分以及排名;
以上功能采用菜单操作方式。
2011-06-23 17:34
冷叶无声
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-6-20
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N10
#define M10
struct compete{
    char num[10];
    char name[10];
    float score[M];
    float aver;
    int no;
}com[N];
void Input(){
    int i,j;
    for(i=0;i<N;i++){
        printf("第%d个选手的编号:",i+1);
        scanf("%s",&com[i].num);
        printf("姓名:");
        scanf("%s",&com[i].name);
        for(j=0;j<M;j++){
            printf("第%d个裁判对该生打出的数:",j++);
            do{
                scanf("%f",&com[i].score[j]);
            }while(com[i].score[j]<0);
        }
    }
    return;
}
void scan(){
    int i,j;
    float max,min,sum;
    compete temp;
    for(i=0;i<N;i++){
        sum=0;min=com[i].score[0];max=0;
        for(j=0;j<M;j++){
            sum+=com[i].score[j];
            if(max<com[i].score[j])
                max=com[i].score[j];
            if(min>com[i].score[j])
                min=com[i].score[j];
        }
        printf("max=%.2f\n",max);
        printf("min=%.2f\n",min);
        com[i].aver=(sum-max-min)/(M-2);
    }
    for(i=0;i<N-1;i++){
        for(j=i+1;j<N;j++){
            if(com[i].aver<com[j].aver{
                strcpy(temp.num,com[i].num);
                strcpy(com[i].num,com[j].num);
                strcpy(com[j].num,temp.num);
                strcpy(temp.name,com[i].name);
                strcpy(com[i].name,com[j].name);
                strcpy(com[j].name,temp.name);
                temp.aver=com[i].aver;
                com[i]aver=com[j].aver;
                com[j].aver=temp.aver;
            }
        }
    }
    for(i=0;i<N;i++)
        com[i].no=i+1;
    printf("编号\t姓名\t得分\n");
    for(i=0;i<N;i++)
        printf("%s\t%s\t%.2f\n",com[i].num,com[i].name,com[i].aver);
    return;
}
void search(){
    char num[10],name[10];int n,i;
    do{
        printf("1.按编号查找  2.按姓名查找\");
            scanf("%d",&n);
    }while(n!=1&&n!=2);
    if(n==1){
        printf("要查找的编号:");
        scanf("%s",num);
        for(i=0;i<N;i++){
            if(strcmp(num,com[i].num)==0){
                printf("编号\t姓名\t得分\t排名\n");
                printf("%s\t%s\t%.2f\t%d\n",com[i].num,com[i].name,com[i].aver,com[i].no);
                break;
            }
        }
        if(i==N)
            printf("没有你要找的选手信息!\n");
    }
    if(n==2)
        printf("要查找的姓名:");
    scanf("%s",name);
    for(i=0;i<N;i++){
            if(strcmp(name,com[i].name)==0){
                printf("编号\t姓名\t得分\t排名\n");
                printf("%s\t%s\t%.2f\t%d\n",com[i].num,com[i].name,com[i].aver,com[i].no);
                break;
            }
        }
        if(i==N)
            printf("没有你要找的选手信息!\n");
    }
    return;
}
void main(){
    int choose;
    while(1){
        do{
            printf("\t1.录入;\n\t2.浏览;\n\t3.查询;\n\t4.退出\n\t请选择功能:\n");
            scanf("%d",&choose);
        }while(choose!=1&&choose!=2&&choose!=3&&choose!=4);
        if(choose==1){
            Input();
            system("pause");
            system("cls");
        }
        else if(choose==2){
            scan();
            system("pause");
            system("cls");
        }
        else if(choose==3){
            search();
            system("pause");
            system("cls");
        }
        else{
            printf("\tGoodbey!\n\n");
            break;
        }
    }
    system("ause");
}
2011-06-23 17:35
冷叶无声
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-6-20
收藏
得分:0 
求啊~~~~~~~~~~~~~~~~~非常感谢
2011-06-24 09:06
韭菜
Rank: 2
等 级:论坛游民
帖 子:51
专家分:94
注 册:2010-9-26
收藏
得分:3 
编译通过平台vc6.0
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 10
#define M 10
struct compete{
    char num[10];
    char name[10];
    float score[M];
    float aver;
    int no;
}com[N];
void Input(){
    int i,j;
    for(i=0;i<N;i++){
        printf("第%d个选手的编号:",i+1);
        scanf("%s",&com[i].num);
        printf("姓名:");
        scanf("%s",&com[i].name);
        for(j=0;j<M;j++)
        {
            printf("第%d个裁判对该生打出的数:",j);
            do{
                scanf("%f",&com[i].score[j]);
            }while(com[i].score[j]<0);
        }
    }
    return;
}
void scan(){
    int i,j;
    float max,min,sum;
    struct compete temp;
    for(i=0;i<N;i++){
        sum=0;min=com[i].score[0];max=0;
        for(j=0;j<M;j++){
            sum+=com[i].score[j];
            if(max<com[i].score[j])
                max=com[i].score[j];
            if(min>com[i].score[j])
                min=com[i].score[j];
        }
        printf("max=%.2f\n",max);
        printf("min=%.2f\n",min);
        com[i].aver=(sum-max-min)/(M-2);
    }
    for(i=0;i<N-1;i++)
    {
        for(j=i+1;j<N;j++)
        {
            if(com[i].aver<com[j].aver)
            {
                strcpy(temp.num,com[i].num);
                strcpy(com[i].num,com[j].num);
                strcpy(com[j].num,temp.num);
                strcpy(temp.name,com[i].name);
                strcpy(com[i].name,com[j].name);
                strcpy(com[j].name,temp.name);
                temp.aver=com[i].aver;
                com[i].aver=com[j].aver;
                com[j].aver=temp.aver;
            }
        }
    }
    for(i=0;i<N;i++)
        com[i].no=i+1;
    printf("编号\t姓名\t得分\n");
    for(i=0;i<N;i++)
        printf("%s\t%s\t%.2f\n",com[i].num,com[i].name,com[i].aver);
    return;
}
void search(){
    char num[10],name[10];int n,i;
    do{
        printf("1.按编号查找  2.按姓名查找\n");
            scanf("%d",&n);
    }while(n!=1&&n!=2);
    if(n==1)
    {
        printf("要查找的编号:");
        scanf("%s",num);
        for(i=0;i<N;i++)
        {
            if(strcmp(num,com[i].num)==0)
            {
                printf("编号\t姓名\t得分\t排名\n");
                printf("%s\t%s\t%.2f\t%d\n",com[i].num,com[i].name,com[i].aver,com[i].no);
                break;
            }
        }
        if(i==N)
            printf("没有你要找的选手信息!\n");
    }
    if(n==2)
    {
        printf("要查找的姓名:");
        scanf("%s",name);
        for(i=0;i<N;i++)
        {
            if(strcmp(name,com[i].name)==0)
            {
                printf("编号\t姓名\t得分\t排名\n");
                printf("%s\t%s\t%.2f\t%d\n",com[i].num,com[i].name,com[i].aver,com[i].no);
                break;
            }
        }
        if(i==N)
            printf("没有你要找的选手信息!\n");
    }
}
void main(){
    int choose;
    while(1){
        do{
            printf("\t1.录入;\n\t2.浏览;\n\t3.查询;\n\t4.退出\n\t请选择功能:\n");
            scanf("%d",&choose);
        }while(choose!=1&&choose!=2&&choose!=3&&choose!=4);
        if(choose==1){
            Input();
            system("pause");
            system("cls");
        }
        else if(choose==2){
            scan();
            system("pause");
            system("cls");
        }
        else if(choose==3){
            search();
            system("pause");
            system("cls");
        }
        else{
            printf("\tGoodbey!\n\n");
            break;
        }
    }
    system("ause");
}
2011-06-24 10:03
myphenix
Rank: 2
等 级:论坛游民
帖 子:33
专家分:23
注 册:2010-9-19
收藏
得分:3 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 10
#define M 10
struct compete
{
    char num[10];
    char name[10];
    float score[M];
    float aver;
    int no;
}
com[N];
void Input()
{
    int i,j;
    for(i=0;i<N;i++)
  {
        printf("第%d个选手的编号:",i+1);
        scanf("%s",&com[i].num);
        printf("姓名:");
        scanf("%s",&com[i].name);
        for(j=0;j<M;j++)
       {
            printf("第%d个裁判对该生打出的数:",j++);
            do
            {
                scanf("%f",&com[i].score[j]);
             }
           while(com[i].score[j]<0);
        }
    }
    return;
}
void scan()
 {
    int i,j;
    float max,min,sum;
    compete temp;
    for(i=0;i<N;i++)
  {
        sum=0;min=com[i].score[0];max=0;
        for(j=0;j<M;j++)
       {
            sum+=com[i].score[j];
            if(max<com[i].score[j])
                max=com[i].score[j];
            if(min>com[i].score[j])
                min=com[i].score[j];
        }
        printf("max=%.2f\n",max);
        printf("min=%.2f\n",min);
        com[i].aver=(sum-max-min)/(M-2);
    }
    for(i=0;i<N-1;i++)
      {
        for(j=i+1;j<N;j++)
         {
       if(com[i].aver<com[j].aver)
              {
                strcpy(temp.num,com[i].num);
                strcpy(com[i].num,com[j].num);
                strcpy(com[j].num,temp.num);
                strcpy(temp.name,com[i].name);
                strcpy(com[i].name,com[j].name);
                strcpy(com[j].name,temp.name);
                temp.aver=com[i].aver;
                com[i]aver=com[j].aver;
                com[j].aver=temp.aver;
               }
        }
    }
    for(i=0;i<N;i++)
        com[i].no=i+1;
    printf("编号\t姓名\t得分\n");
    for(i=0;i<N;i++)
        printf("%s\t%s\t%.2f\n",com[i].num,com[i].name,com[i].aver);
    return;
}
void search()
{
    char num[10],name[10];int n,i;
    do
     {
        printf("1.按编号查找  2.按姓名查找\n");
            scanf("%d",&n);
    }
  while(n!=1&&n!=2);
    if(n==1)
     {
        printf("要查找的编号:");
        scanf("%s",num);
        for(i=0;i<N;i++)
         {
            if(strcmp(num,com[i].num)==0)
             {
                printf("编号\t姓名\t得分\t排名\n");
                printf("%s\t%s\t%.2f\t%d\n",com[i].num,com[i].name,com[i].aver,com[i].no);
                break;
             }
        }
        if(i==N)
            printf("没有你要找的选手信息!\n");
    }
    if(n==2)
    {
        printf("要查找的姓名:");
        scanf("%s",name);
        for(i=0;i<N;i++)
         {
            if(strcmp(name,com[i].name)==0)
            {
                printf("编号\t姓名\t得分\t排名\n");
                printf("%s\t%s\t%.2f\t%d\n",com[i].num,com[i].name,com[i].aver,com[i].no);
                break;
            }
         }
        if(i==N)
            printf("没有你要找的选手信息!\n");
    }
    return;
}
void main()
 {
    int choose;
    while(1)
     {
        do
          {
            printf("\t1.录入;\n\t2.浏览;\n\t3.查询;\n\t4.退出\n\t请选择功能:\n");
            scanf("%d",&choose);
          }
       while(choose!=1&&choose!=2&&choose!=3&&choose!=4);
        if(choose==1)
         {
            Input();
            system("pause");
            system("cls");
         }
        else if(choose==2)
        {
            scan();
            system("pause");
            system("cls");
        }
        else if(choose==3)
        {
            search();
            system("pause");
            system("cls");
        }
        else
        {
            printf("\tGoodbey!\n\n");
            break;
        }
    }
    system("ause");
}
2011-06-24 10:20
快速回复:请求高手找错误啊~~~~急!!要交.帮我改正过来~~谢谢非常....
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021787 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved