洛谷报错Wrong Answer

m0_75181239 2023-04-06 21:38:28

两个测试点通过了第一个,第二个显示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);
}

想知道怎么改,谢谢各位大神

...全文
8682 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_75181239 2023-04-10
  • 打赏
  • 举报
回复

要求使用函数和单链表或顺序表,我第一个点过了就是第二个点不知道为什么过不了,在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;
}

65,202

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧