标题:怎么就成这样了。。。。。。。。。。。。。。。
只看楼主
沙界殇
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-12-27
结帖率:100%
已结贴  问题点数:20 回复次数:9 
怎么就成这样了。。。。。。。。。。。。。。。

..........................
void new_xs(struct xs xuanshou[]){
    struct xs x;
    if(count==10){
        printf("已经有十个选手了,无法再录入选手资料,谢谢合作\n");
        return;
    }
    printf("请输入选手的参赛编号:");
    scanf("%d",&x.num);
    printf("请输入选手的姓名:");
    scanf("%d",x.name);
    printf("请输入选手的分数:");
    scanf("%d",x.mark);
    xuanshou[count]=x;
    count++;
}

........................

然后  。。。。。。。。。。。。 就无限循环了

搜索更多相关主题的帖子: return count 姓名 资料 
2014-01-04 17:04
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
得分:4 
外面的函数里有%c或%s输入吧?

小小战士,战士中的战斗机!
2014-01-04 18:47
沙界殇
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-12-27
得分:0 
#include<stdio.h>
#include<string.h>
struct xs{
    int num;
    char name[15];
    int mark[10];
    int pai;
   
};
int count=0;
int sum[10],max[10],min[10],i,j;
float ave[10];
void new_xs(struct xs xuanshou[]);
void search_xs(struct xs xuanshou[],int num);
void pai_xs(struct xs xuanshou[],float b[],int n);
int main(void){
    int choice,num;
    struct xs xuanshou[10];
    do{
        printf("请选择:  \n                  1:录入\n                  2:查询\n                  3:选手排名\n                  0:退出\n_____________________________________________________________________________\n");
        scanf("%d",&choice);
        switch(choice){
        case 1:new_xs(xuanshou);
            break;
        case 2:printf("请输入选手序号:\n");
            scanf("%d",&num);
            search_xs(xuanshou,num);
            break;
            
            
        case 3:for(i=0;i<10;i++){
            max[i]=xuanshou[i].mark[0];
            min[i]=xuanshou[i].mark[0];
            for(j=0;j<10;j++)
            {
                sum[i]+=xuanshou[i].mark[j];
                if(max[i]<xuanshou[i].mark[j]) max[i]=xuanshou[i].mark[j];
                if(min[i]>xuanshou[i].mark[j]) min[i]=xuanshou[i].mark[j];
            }
            ave[i]=(sum[i]-max[i]-min[i])/8.0;
               }
            pai_xs(xuanshou,ave,count);
            for(i=0;i<count;i++)
                printf("%s %.2f\n",xuanshou[i].name,ave[i]);
            break;
            
        case 0:break;}
        
    }while(choice!=0);
    printf("\n     ____________________   THE   END    ________________________\n");
    return 0;
}
void new_xs(struct xs xuanshou[]){
    struct xs x;
    if(count==10){
        printf("已经有十个选手了,无法再录入选手资料,谢谢合作\n");
        return;
    }
    printf("请输入选手的参赛编号:\n");
    scanf("%d",&x.num);
    printf("请输入选手的姓名:\n");
    scanf("%s",x.name);
    printf("请输入选手的分数:\n");
    scanf("%d",x.mark);
    xuanshou[count]=x;
    count++;

}


void search_xs(struct xs xuanshou[],int num){
    int i,flag=0;
    char name[15];
    if(count==0){
        printf("现在还没有选手的资料,请谅解\n");
        return;
    }
    for(i=0;i<count;i++)
        if(xuanshou[i].num==num||xuanshou[i].name==name){
            flag=1;
            break;
        }
        if(flag){
            printf("选手序号:%d   ",xuanshou[i].num);
            printf("选手姓名:%d   ",xuanshou[i].name);
            printf("选手排名:%d   ",xuanshou[i].pai);
            
        }
        else printf("对不起,没有找到该选手\n");
}

void pai_xs(struct xs xuanshou[],float b[],int n){
    int i,k,j,t;
    float temp;
    char str[8];
    for(i=0;i<n;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
            if(b[k]>b[j]) k=j;
            if(k!=i)
            {
                temp=b[i];
                b[i]=b[k];
                b[k]=temp;
                strcpy(str,xuanshou[i].name);   //交换
                strcpy(xuanshou[i].name,xuanshou[k].name);
                strcpy(xuanshou[k].name,str);
                t=xuanshou[i].num;
                xuanshou[i].num=xuanshou[k].num;
                xuanshou[k].num=t;
            }
    }
}
2014-01-04 19:10
沙界殇
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-12-27
得分:0 
新手上路  也不知道错哪了  改来改去都是错的
2014-01-04 19:13
c718382171
Rank: 2
等 级:论坛游民
帖 子:32
专家分:41
注 册:2013-12-21
得分:4 
int mark[10];
 
   
    scanf("%d",x.mark);这个存在错误
2014-01-04 22:25
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:4 
scanf("%d",x.name);
printf("请输入选手的分数:");
scanf("%d",x.mark);

红色部分不用加取址符 & 吗?

三十年河东,三十年河西,莫欺少年穷!
2014-01-04 23:49
幽暗太阳
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2009-10-3
得分:4 
不用
scanf("%d",地址);
x.name就得到一个地址
2014-01-05 01:32
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:4 
回复 7楼 幽暗太阳
麻烦7楼回答问题之前先看name是什么类型的

总有那身价贱的人给作业贴回复完整的代码
2014-01-05 09:56
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:0 
回复 7楼 幽暗太阳
那你输入的应该就是字串喽?   %d 是不是该换成 %s,   反正总要改一种

三十年河东,三十年河西,莫欺少年穷!
2014-01-05 10:36
沙界殇
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-12-27
得分:0 
thank you   知道了
2014-01-10 12:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-426119-1-1.html




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

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