65,202
社区成员




两个测试点通过了第一个,第二个显示Wrong Answer.wrong answer On line 1 column 16, read 1, expected 0.
输入两组递增正整数(每组以-1结束),合并为一组递增有序正整数,输出结果
两行,每行若干整数(空格分开),以-1结束
一行,若干正整数(空格分开)
输入 #1
1 3 5 11 -1 2 4 6 10 -1
输出 #1
1 2 3 4 5 6 10 11
输入 #2
1 3 3 5 11 12 -1 2 3 4 6 10 -1
输出 #2
1 2 3 4 5 6 10 11 12
以下为代码
#include<stdio.h>
#include<stdlib.h>
#define maxsize 100
typedef int ElemTyde;
typedef struct SqList
{
ElemTyde length;
ElemTyde data[maxsize];
}List;
void creat(List *&L)//创建顺序表
{
int i=0;
L=(List *)malloc(sizeof(List));
for(i=0;;i++)
{
scanf("%d",&L->data[i]);
L->length=i;
if(L->data[i]<0) break;
}
}
void UnionList(List *&L1,List *&L2,List *&L3)//合并顺序表
{
int i=0,j=0,k=0;
L3=(List *)malloc(sizeof(List));
while(i < L1->length && j < L2->length)
{
if(L1->data[i] < L2->data[j])
{
L3->data[k]=L1->data[i];
i++;k++;
}
else
{
L3->data[k]=L2->data[j];
j++;k++;
}
if(L1->data<(ElemTyde *)0 || L2->data<(ElemTyde *)0) break;
}
while(i<L1->length)//L1尚未遍历完,将其余元素插入L3
{
L3->data[k]=L1->data[i];
i++;k++;
if(L1->data<(ElemTyde *)0) break;
}
while(j<L2->length)
{
L3->data[k]=L2->data[j];
j++;k++;
if(L2->data<(ElemTyde *)0) break;
}
L3->length=k;
}
void delet(List *&L)//删除重复元素
{
int i,j=1;
ElemTyde k=L->data[0];
for(i=1;i<L->length;i++)
{
if(k!=L->data[i]) //删除元素定位
{
L->data[j]=L->data[i];
j++;
k=L->data[i];
}
else
{
i++;
}
}
L->length=j;
}
void disp(List *L)//输出
{
int i;
for(i=0;i<L->length;i++)
{
printf("%d ",L->data[i]);
}
}
int main()
{
List *L1,*L2,*L3;
creat(L1);
creat(L2);
UnionList(L1,L2,L3);
delet(L3);
disp(L3);
}
想知道怎么改,谢谢各位大神
要求使用函数和单链表或顺序表,我第一个点过了就是第二个点不知道为什么过不了,在Dev C++上运行是正确的的
它这个要求元素不重复,除此之外毫无难度~
#include <cstdio>
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> v;
for (int i = 0; scanf("%d", &i), i != -1;)
if (std::find(v.begin(), v.end(), i) == v.end()) v.insert(v.end(), i);
for (int i = 0; scanf("%d", &i), i != -1;)
if (std::find(v.begin(), v.end(), i) == v.end()) v.insert(v.end(), i);
sort(v.begin(), v.end());
for (int i = (printf("%d", v[0]), 1); i < v.size(); i++)
printf(" %d", v[i]); puts("");
return 0;
}