概述
1.这是全代码,有顺序表的定义,内存动态分配,取值,输出,合并,有的被注释掉了,
2#include <stdio.h>
#include <stdlib.h>
#define maxsize 100
#define OK 1
#define ERROR 0
#define OVERFLOW -2;
typedef int Status;
typedef struct { //定义顺序表
int num[maxsize];
}Number;
typedef struct{
Number *elem;
int length;
}SqList;
Status InitList(SqList &l)//初始化,分配空间
{
l.elem= (Number *)malloc(maxsize*(sizeof(Number)));
if(!l.elem)
return ERROR;
l.length=0;
return OK;
}
3/*
Status GetElem(SqList l,int i,int &e)//取值 1
{
if(i<1||i>l.length)
return ERROR;
e=l.elem[i-1];
return OK;
}
*/
Status GetElem(SqList &l,int i)//取值2
{
printf("请输入长度:n");
scanf("%d",&l.length);
printf("长度为:%dn",l.length);
for(i=0;i<l.length;i++){
printf("进入循环n");
printf("请输入第%d个元素:n",i+1);
scanf("%d",&l.elem[i].num);
printf("第%d循环结束n",i+1);
}
printf("结束循环");
}
Status ShowList(SqList &l)//输出顺序表
{
int i;
printf("要输出了n");
for(i=0;i<l.length;i++){
printf("%d ",&(l.elem[i].num));
}
printf("n");
}
/*
void merge (SqList LA,SqList LB,SqList &LC)//合并
{
Number *pc,*pb,*pa;
Number *pa_last,*pb_last,*pc_last;
LC.length=LA.length+LB.length;
LC.elem=(Number *)malloc(maxsize*(sizeof(Number)));
pc=LC.elem;
pa=LA.elem;
pb=LB.elem;
pa_last=LA.elem+LA.length-1;
pb_last=LB.elem+LB.length-1;
while((pa<=pa_last)&&(pb<=pb_last))//AB两表都未结束时进行循环
{
if(*pa <= *pb)//较小值加入C表
{
*pc++=*pa++;
}
else
{
*pc++=*pb++;
}
}
while(pa<=pa_last)//剩余值加入c表
{
*pc++=*pa++;
}
while(pb<=pb_last)
{
*pc++=*pb++;
}
}
*/
int main(){
SqList LA,LB,LC;
int i;
GetElem(LA,i);
//GetElem(LB,i);
//merge(LA,LB,&LC);
ShowList(LA);
ShowList(LB);
//ShowList(LC);
return 0;
}
最后
以上就是热情画板为你收集整理的求助,嵌套结构体的输入怎么搞呢,一直出错c语言数据结构顺序表的合并,怎么写呢1.这是全代码,有顺序表的定义,内存动态分配,取值,输出,合并,有的被注释掉了,2#include
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复