报错提示类型不兼容,为什么错了啊

baidu_37527602 baidu_37527602 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include<stdio.h>
#define MaxSize 100

typedef int DataType;


typedef struct
{
DataType list[MaxSize];
int size;
}SeqList;


typedef struct student//定义学生信息结构体
{
long number;
char name[10];
char sex[3];
int age;
}StudentType;


void ListInit(SeqList *L,int listsize)
//初始化顺序表L
{
L->size=listsize;//定义初始元素个数
}



int ListLength(SeqList L)
//求当前数据元素个数
{
return L.size;
}



int ListInsert(SeqList *L,int i,DataType x)
//插入数据元素
//在顺序表L的第i(0<=i<=size)个位置前插入数据元素值x
//插入成功返回1,失败返回0
{
int j;
if(L->size>=MaxSize)
{
printf("顺序表已满无法插入!\n");
return 0;
}
if(i<0||i>L->size)
{
printf("参数i不合法!\n");
return 0;
}
else
{
for(j=L->size;j>i;j--)//从后向前依次后移数据,为插入做准备
L->list[j]=L->list[j-1];
L->list[i]=x;
L->size++;
return 1;
}
}



int ListDelete(SeqList *L,int i,DataType *x)
//删除数据元素
//删除顺序表L中位置(0<=i<=size)上的数据元素并保存到x中
//删除成功返回1,失败返回0
{
int j;
if(L->size<=0)
{
printf("顺序表已空无数据可删!\n");
return 0;
}
if(i<=0&&i>L->size-1)
{
printf("参数i不合法!\n");
return 0;
}
else
{
*x=L->list[i];//保存删除的元素到x中
for(j=i+1;j<=L->size-1;j++)//从前向后依次移
L->list[j-1]=L->list[j];
L->size--;
return 1;
}
}


int ListGet(SeqList L,int i,DataType *x)
//获取数据元素
//取顺序表L中第i个元素存于x中
//获取成功返回1,失败返回0
{
if(i<0||i>L.size-1)
{
printf("参数i不合法!\n");
return 0;
}
else
{
*x=L.list[i];
return 1;
}
}

void main(void)
{

SeqList myList;
StudentType s;
int i;
StudentType x[3]={
{2000001,"张三","男",20},
{2000002,"李四","男",21},
{2000003,"王五","女",22}
};
ListInit(&myList,0);
ListInsert(&myList,0,x[0]); //报错提示类型不兼容
ListInsert(&myList,1,x[1]);
ListInsert(&myList,2,x[2]);
for(i=0;i<ListLength(myList);i++)
{
ListGet(myList,i,&s);
printf("%d %s %s %d\n",s.number,s.name,s.sex,s.age);
}
}


...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
baidu_37527602
C语言 70,040 成员 243,237 内容