【发布时间】:2013-12-06 03:42:52
【问题描述】:
我有 2 个数组。输入 1 和输入 2。假设输入 1 有 {1,1,2,3,3,4,5},输入 2 有 {4,2,6,7,8}。合并数组 {1,1,2,3,3,4,5,4,2,6,7,8}
排序后我的合并数组看起来像 {1,1,2,2,3,3,4,4,5,6,7,8}
我的输出应该像 {5,6,7,8} 因为它们是非重复元素。它不应该在第一次出现两次,也不应该在第一次和第二次出现一次。
我已将两个数组放入一个数组中(将两者合并)。对其进行排序并删除重复项。我得到像 {1,2,3,4,5,6,7,8} 这样的输出,但我不应该得到 1,2,3,4,因为它们都在合并数组中出现了两次。
请帮助我尽快完成该计划。提前致谢。
我不能使用结构。那是我的任务。
#include<stdio.h>
#include<conio.h>
main()
{
int a[10],b[10],c[10],i,j,n,n1,temp;
clrscr();
printf("enter the no of ele in array1\n");
scanf("%d",&n);
printf("enter 1st array elements\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("enter size of 2nd array");
scanf("%d",&n1);
printf("enter 2nd array elements\n");
for(i=0;i<n;i++)
{
scanf("%d",&b[i]);
}
for(i=0;i<n;i++)
{
c[i]=a[i];
}
j=0;
for(i=n;i<n+n1;i++)
{
c[i]=b[j];
// printf("\n2nd array values are %d",c[i]);
j++;
}
for(i=0;i<n+n1;i++)
{
printf("%d\n",c[i]);
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(c[j]>c[j+1])
{
temp=c[j];
c[j]=c[j+1];
c[j+1]=temp;
}
}
}
for(j=0;j<n+n1;j++)
{
printf("sorted is %d\n",c[j]);
}
for(i=0;i<n+n1;i++)
{
if(c[i]==c[i+1])
{
temp=c[i];
// printf("%d r d rep.ele\n",c[i]);
}
else
printf("%d r d ele\n",c[i]);
}
getch();
}
【问题讨论】:
-
到目前为止你尝试了什么?
-
Please help me to finish the program soon.-- 你开始了吗? -
如果您要删除重复项,您会得到
{1,2,3,4,5,6,7,8},对吗?你的算法不需要重复来过滤掉它们吗? -
请粘贴您的代码片段。
-
显示你尝试了什么