kjwyzz 2021-09-14 00:06 采纳率: 85.7%
浏览 70
已结题

delet函数有问题,求怎么将重复元素删掉?


#include<iostream>
using namespace std;
#define InitSize 50
typedef int ElemType;
typedef struct{
    ElemType *data;
    int length, MaxSize;
}SqList;

void InitList(SqList &L)
{
    L.data = new ElemType[InitSize];
    L.length = 0;
    L.MaxSize = InitSize;
}

bool Merge(SqList A, SqList B, SqList &C)
{
    int i = 0, j = 0, k = 0;
    if (A.length + B.length > C.MaxSize)
            return false;
    while( i < A.length && j < B.length)
    {
        if (A.data[i] <= B.data[j])
            C.data[k++] = A.data[i++];
        else
            C.data[k++] = B.data[j++];
    }
    while (i < A.length) C.data[k++] = A.data[i++];
    while (j < B.length) C.data[k++] = B.data[j++];
    C.length = k;
    return true;
}

void printList(SqList L)
{
    for (int i = 0; i < L.length; i++)
        cout << L.data[i] << "  ";
    cout << endl;
}
void delet(SqList C)
    {int i=0,k=0;
    while(i < C.length)
        if(C.data[i]==C.data[i+1])
            while(i<C.length)
              {C.data[i]=C.data[i+1];
              i++;}
            k++;
        C.length-=k;


}

int main()
{
    SqList A;
    InitList(A);
    SqList B;
    InitList(B);
    A.length = 6; B.length = 5;
    for (int i = 0; i < A.length; i++)
        //A.data[i] = 2*i + 1;
        cin>>A.data[i];
    for (int i = 0; i < B.length; i++)
        //B.data[i] = 2*(i + 1);
        cin>>B.data[i];

    SqList C;
    InitList(C);
    printList(A);
    printList(B);
     if (Merge(A,B,C))
     {delet(C);
    printList(C);}
     return 0;
}
有
  • 写回答

4条回答 默认 最新

  • 三十而学 2021-09-14 00:44
    关注

    外层元素应该是k吧

    评论

报告相同问题?

问题事件

  • 系统已结题 9月22日
  • 创建了问题 9月14日

悬赏问题

  • ¥50 求一位精通京东相关开发的专家
  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多