鱼C论坛

 找回密码
 立即注册
查看: 3321|回复: 1

求救大佬,用顺序表将两个已经从小到大排好顺序的数组合并并且输出。

[复制链接]
发表于 2020-10-25 16:46:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#define MAX 20
#include <stdio.h>

typedef struct
{
        int last;
        int d[MAX];
}Seq;
Seq LA;
Seq LB;
Seq LC;




int mergeList(Seq LA,Seq LB,Seq LC)
{
        int i,j,k,l;
        i=j=k=0;
        while(i<=LA.last&&j<=LB.last)
               
                if(LA.d[i]<=LB.d[j])
                {
                        LC.d[k]=LA.d[i];
                        i++;
                        k++;
                }
                else
                {
                        LC.d[k]=LB.d[j];
                        j++;
                        k++;
                }
       


        while(i<=LA.last)
        {
                LC.d[k]=LA.d[i];
                i++;k++;
               
        }       
        while(j<=LB.last)
        {
                LC.d[k]=LB.d[j];
                i++;j++;
        }
       
        LC.last=LA.last+LB.last+1;
       
       
        return 0;
}


int main()
{        int i =0;
        LA.d[20]={0,1,2,3,4,5,5,9,10};
        LB.d[20]={3,4,6,7,8};
        LC.d[20]={0};
        int mergeList(LA,LB,LC);
       

        for (0;i<=13;i++)
                printf("%d\n",LC.d[i]);       
}
QT6KKX5BUM9`K)~][VV)0LT.png


我在main函数这个主函数之上写的都没有报错,但是在main函数内,想给两个数组由我自己赋值,并且合并,然后利用for循环,逐个输出,但是已经有一个小时了,还没有得到解决,也看不出错误在哪,烦请大佬不吝赐教,万分感谢,好人一生平安!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-25 19:27:11 | 显示全部楼层
其实不用定义结构体
#define MAX 20
#include <stdio.h>

int mergeList(int *LA,int *LB,int *LC,int length_LA,int length_LB)
{
                
        int i,j,k,l;
        i=j=k=0;
        while(i<length_LA&&j<length_LB)
        {
                
                if(LA[i] < LB[j])
                {
                        LC[k] = LA[i];
                        i++;
                        k++;
                }
                else
                {
                        LC[k] = LB[j];
                        j++;
                        k++;
                }
        } 
        
                while(i<length_LA)
                {
                        LC[k] = LA[i];
                        i++;
                        k++;
                }
                
                while(j<length_LB)
                {
                        LC[k] = LB[j];
                        j++;
                        k++;
                }
                    
        return k;
}


int main()
{        int i =0;
        int LA[]={0,1,2,3,4,5,5,9,10};
        int LB[]={3,4,6,7,8};
        int LC[20]={0};
        int length_LA = sizeof(LA) / sizeof(int);
                int length_LB = sizeof(LB) / sizeof(int);
        int k = mergeList(LA,LB,LC,length_LA,length_LB);
        
        for (i=0;i<k;i++)
        {
                printf("%d\n",LC[i]); 
                }
        
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 14:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表