C语言顺序表结构体数据插入代码
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define MAX 10
typedef struct {
int num;
char name[10];
char sex[10];
int cj;
}student;
typedef struct {
student data[MAX];
int length;
}SeqList,*PSeqList;
PSeqList init_SeqList(void)
{
PSeqList PL;
PL=(PSeqList)malloc(sizeof(SeqList));
if(PL)
PL->length=0;
return PL;
}
void ListInsert(PSeqList PL)
{
int j,i;
student s;
printf("==============输入要插入的学生信息=================\n");
printf("*****学号:"); scanf("%d",&s.num);
printf("*****姓名:"); scanf("%s",&s.name);
printf("*****成绩:"); scanf("%d",&s.cj);
printf("*****性别:"); scanf("%s",&s.sex);
printf("===================输入完成==============================\n\n");
printf("请输入要插入的位置:");
scanf("%d",&i);
if (i<1||i>PL->length+1)
{
printf("插入位置不合法\n");
}
for(j=PL->length;j>=i;j--)
{
PL->data[j+1]=PL->data[j];
}
PL->data[i-1]=s;
PL->length++;
}
void print_SeqList(PSeqList PL)
{
int i=0;
printf("=========================学生信息表=========================\n");
for (i=0;i<PL->length;i++)
{
printf("学号:%d\n",PL->data[i].num);
printf("姓名:%s\n",PL->data[i].name);
printf("性别:%s\n",PL->data[i].sex);
printf("成绩:%d\n",PL->data[i].cj);
}
printf("\n");
}
void main()
{ int i;
PSeqList PL;
PL=init_SeqList();
for (i=0;i<5;i++)
{ListInsert(PL);
}
print_SeqList(PL);
}
这里成绩改为double类型不知道为啥报错。## 标题