qq_36869878 2016-11-29 13:43
浏览 1461

数据结构线性表l1和l2合并成l3,哪里有错?

代码:
#include
#define M 300

typedef int datatype;
typedef struct sq
{
datatype *data;
int length;

}sq;

sq *create()
{
sq *l;
l=(sq *)malloc(sizeof(sq *));
if(l)
l->length=0;
return l;
}

int init(sq *l)
{
int i=0;
printf("\nplease input the data(end of 0):");
scanf("%d",&l->data[i]);
l->length=1;
while(l->data[i]!=0)
{
i++;
l->length++;
scanf("%2d",&l->data[i]);
}
l->length--;

}

int together(sq *l1,sq *l2,sq *l3)
{
int i=0,j=0,k=0;

l3->length=l1->length+l2->length;
while(i<l1->length&&j<l2->length)
{
    if(l1->data[i]<=l2->data[j])
        {l3->data[k]=l1->data[i];
         k++;i++;
         }
    else
        {l3->data[k]=l2->data[j];
        k++;j++;}
}
while(l1->length)
    {l3->data[k]=l1->data[i];
    k++;i++;}
while(l2->length)
    {l3->data[k]=l2->data[j];
    k++;j++;}

}

int output(sq *l)
{
int i;
for(i=0;ilength;i++)
printf("%2d",l->data[i]);
}

int reverse(sq *l)
{
int i,j,temp;
i=0;
j=l->length-1;
while(i!=j)
{
temp=l->data[i];
l->data[i]=l->data[j];
l->data[j]=temp;
i++;
j--;
}

}

int main()
{
sq *l1,*l2,*l3;
l3=(sq *)malloc(sizeof(sq *));
l1=create();
init(l1);
printf("\nthe l1 is:");
output(l1);
l2=create();
init(l2);
printf("\nthe l2 is:");
output(l2);
l3=create();
together(l1,l2,l3);
printf("\nthe l3 is:");
output(l3);
printf("\nreverse l3:");
reverse(l3);
output(l3);
getch();

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
    • ¥15 谁有desed数据集呀
    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
    • ¥15 关于#hadoop#的问题
    • ¥15 (标签-Python|关键词-socket)
    • ¥15 keil里为什么main.c定义的函数在it.c调用不了