| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 432 人关注过本帖
标题:代码报错,不知道什么错误怎么改?
只看楼主 加入收藏
zggdsgs
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-4-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
代码报错,不知道什么错误怎么改?
图片附件: 游客没有浏览图片的权限,请 登录注册
2015-06-10 22:35
丨Killer
Rank: 2
等 级:论坛游民
帖 子:7
专家分:23
注 册:2014-10-10
收藏
得分:20 
源代码发出来看看!-.=
2015-06-10 22:37
zggdsgs
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-4-6
收藏
得分:0 
回复 楼主 zggdsgs
#include <stdio.h>
#include <malloc.h>
#include <string.h>
typedef struct  {
     int cla;
     int num;
     char name[20];
     char sex;
     long phonenum;
}student;
typedef struct {
     student *elem;
     int length;
     int sum;
}ST;
ST *initlist() {
    ST *l;
    l=(ST*)malloc(sizeof(ST));
    if(!l)printf("没有创建ST!\n");
    l->length=0;l->sum=3;
    l->elem=(student*)malloc(3*sizeof(student));
    if(!l->elem)
        printf("没有创建elem!\n");
    return(l);
}
int place(ST*l,int c,int num){
    int low,high,mid,j=-1,i;
    low=0;high=l->length-1;
    while(low<=high){
        mid=(low+high)/2;
        if(l->elem[mid].num>num)high=mid-1;
        else{j=mid;low=mid+1;
        }
    }i=j;
        for(j=mid;j>=i;j--){
            if(j==-1||num>l->elem[j].num)
                break;
            else if(num==l->elem[j].num&&c>l->elem[j].cla)
                break;
        }
        return(++j);
}
void move(ST *l,int j){
    int i;
    for(i=l->length-1;i>=j;i--){
        l->elem[i+1].cla=l->elem[i].cla;
        strcpy(l->elem[i+1].name,l->elem[i].name);
        l->elem[i+1].num=l->elem[i].num;
        l->elem[i+1].sex=l->elem[i].sex;
        l->elem[i+1].phonenum=l->elem[i].phonenum;
    }
}
void createlist(ST*l){
    int i,j,c,num;
    char nam[20],s;
    long p;
    printf("输入学生信息(class/name/num/sex/phonenum):\n");
    for(i=0;i<l->sum;i++){
    scanf("%d%s%d%c%ld",&c,&nam,&num,&s,&p);
    j=!(l->length)?0:place(l,c,num);
    move(l,j);
    l->elem[j].cla=c;
    strcpy(l->elem[j].name,nam);
    l->elem[j].num=num;
    l->elem[j].sex=s;
    l->elem[j].phonenum=p;l->length++;
    }
}
void searchbin(ST*l) {
    int low,high,mid,num,c;
    printf("输入查找人的学号和班级号:");
    scanf("%d %d",&num,&c);
    if(num!=-1||c!=-1){
        low=0;high=l->length-1;
        while(low<=high){
            mid=(low+high)/2;
            if(l->elem[mid].num<num)low=mid+1;
            else if(l->elem[mid].num>num)high=mid-1;
            else{
                if(l->elem[mid].cla<c)mid++;
                else if(l->elem[mid].cla>c)mid--;
                break;
            }
    }
    printf("class:%d,name:%s,num:%d,sex:%c,phonenum:%ld\n",l->elem[mid].cla,l->elem[mid].name,l->elem[mid].num,l->elem[mid].sex,l->elem[mid].phonenum);
}
void searchseq(ST *l){
    int num,c,i;
    printf("输入查找人的学号和班级号:");
    scanf("%d %d",&num,&c);
    for(i=0;i<=l->length;i++)
        if(l->elem[i].num==num)
            break;
        if(i!=l->length)
            printf("class:%d,name:%s,num:%d,sex:%c,phonenum:%ld\n",l->elem[i].cla,l->elem[i].name,l->elem[i].num,l->elem[i].sex,l->elem[i].phonenum);
        else
            printf("查无此人!");
}
void printlist(ST*l){
    int i,j=0;
    printf("当前表中信息如下:class/name/num/sex/phonenum\n");
    for(i=0;i<l->sum;i++){
        printf("class:%d,name:%s,num:%d,sex:%c,phonenum:%ld\n",l->elem[i].cla,l->elem[i].name,l->elem[i].num,l->elem[i].sex,l->elem[i].phonenum);
        if(++j==3){
            j=0;
            printf("\n");
        }
    }
    printf("\n");
}
void main(){
    ST *l;
    ST *l2;
    printf("class1\n");
    l=initlist();
    createlist(l);
    printlist(l);
    printf("用折半查找实现class1\n");
    searchbin(l);
    printf("class2\n");
    l2=initlist();
    createlist(l2);
    printlist(l2);
    printf("用顺序查找实现class2\n");
    searchseq(l2);
}

[ 本帖最后由 zggdsgs 于 2015-6-10 22:54 编辑 ]
2015-06-10 22:52
zggdsgs
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2015-4-6
收藏
得分:0 
回复 2楼 丨Killer
发了
2015-06-10 23:01
快速回复:代码报错,不知道什么错误怎么改?
数据加载中...
 
   



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

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