| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 339 人关注过本帖
标题:大家帮我来找一个错误,找了半天不知道哪里错了的。
取消只看楼主 加入收藏
yangyuzhigua
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
大家帮我来找一个错误,找了半天不知道哪里错了的。
#include<stdio.h>
#include<stdlib.h>
#define size 10
struct data{
    int chenji;
    char name[size];
};
struct sqlist{
    struct data *student;
    int length;
};
void bincertsort(struct sqlist *l);

main(){
    int i,j;
    int s=1;
    struct sqlist *l=(struct sqlist *)malloc(sizeof(struct sqlist));
    printf("请先输入学生的个数:");
    scanf("%d",&i);
    l->student=(struct data *)malloc((i+1)*sizeof(struct data));
    for(j=1;j<=i;j++){
        printf("请输入学生的成绩和姓名:");
        scanf("%d %s",&(l->student[j].chenji),l->student[j].name);   
}
   
    l->length=i;
    bincertsort(l);
    printf("姓名\t成绩\t名次\n");
    for(j=i;j>=1;j--){
        
        printf("%s\t%d\t%d\n",l->student[j].name,l->student[j].chenji,s);
        s++;
    }

}

void bincertsort(struct sqlist *l){
    int i,high,low,m,j;
    for(i=2;i<=l->length;++i){
        l->student[0]=l->student[i];
        while(low<=high){
            m=(low+high)/2;
            if(l->student[0].chenji<l->student[m].chenji) high=m-1;
            else low =m+1;
        }
        for(j=i-1;j>=high+1;--j) l->student[j+1]=l->student[j];
        l->student[high+1]=l->student[0];
    }
}
好像是那个排序的子函数出了问题,求高手作解释。
2011-06-18 07:28
yangyuzhigua
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-14
收藏
得分:0 
回复 2楼 bccn_2012
你说我没有定义结构体student[]是在那个里面,我在上面的结构体里面定义了struct data *student了的吗!是不是在排序函数里面也要定义呢?
2011-06-18 14:34
快速回复:大家帮我来找一个错误,找了半天不知道哪里错了的。
数据加载中...
 
   



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

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