太过平凡的小蚂蚁 2015-04-22 13:44 采纳率: 26.9%
浏览 1402

数据结构问题 求帮助 谢谢

//要求做一个放入学生的学号,姓名和成绩的顺表

#include
#include
#define MAXSIZE 100
//定义一个结构体类型放学生的基本信息
typedef struct{
char *name;
char *Nom;
char *secore;
}DataType;

DataType stu[MAXSIZE];//定义一个结构体数组

typedef struct{

DataType *data;//定义了一个数组
int length;
}SeqList;

//初始化这个顺序表
InitList(SeqList *L)
{

L->data=(DataType *)malloc(sizeof(DataType)*MAXSIZE);//申请一个这么大的空间
L->length=0;

}

//插入元素
void InsertList(SeqList *L,int location,DataType e)
{

int i=L->length;

//考虑插入的位置
//考虑插入是否会溢出
if(location<1 || location>L->length+1)
    printf("插入位置错误\n");

else if(location>=MAXSIZE)
    printf("空间溢出\n");
else
     while(i>=location)

       L->data[i+1]=L->data[i];
       L->data[i]=e;
       L->length++;

}

OutList(SeqList *L)
{

int length=1;

printf("2******2\n");
//判断表中是否有值
if(L->length==0)
printf("表中没有值\n");
else
while(length<=L->length)
{

printf("3******3\n");

        printf("%s %s %s\n",L->data[length].name,L->data[length].Nom,L->data[length].secore);
        length++;

    } 

}
void main()
{
int length;
int i;
int location;
SeqList L;

InitList(&L);

for(i=1;i<=2;i++)//理论最大一百,用i<=2来进行测试
{

printf("输入位置\n");
scanf("%d",&location);
printf("请依次输入学生姓名 学号 分数中间用空格分隔\n");
scanf("%s %s %s",&stu[i].name,&stu[i].Nom,&stu[i].secore);

InsertList(&L,location,stu[i]);
}
printf("1******1\n");

OutList(&L);

}

从测试结果看是输出函数出问题了,但是就是找不出来,请求帮助,谢谢!

  • 写回答

1条回答 默认 最新

  • G____yiyi 2015-04-22 14:24
    关注

    排版好乱不想看。。。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于stm32hal库驱动ft6336触摸屏遇到的问题
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22