【问题描述】
输入两组正整数,每组整数不超过20个,并且每组整数中不存在重复数据,也不存在是另一个数据整数倍的数据。编写一个程序按下面要求合并两组整数并输出:
- 合并时如果一个数据是另一个数据的整数倍,则剔除;若数据相同,则只保留一个;
- 从小到大顺序输出合并后数据。
【输入形式】
先从控制台输入第一组整数的个数,然后在下一行输入第一组整数,各整数之间以一个空格分隔;然后按照同样的方式输入第二组整数。
【输出形式】
在标准输出上按从小到大顺序输出合并后的数据,各整数之间以一个空格分隔,最后一个整数后也可以有一个空格。
【输入样例】
4
25 93 61 2
6
5 22 3 67 13 61
【输出样例】
2 3 5 13 61 67
【样例说明】
第一组整数有4个,第二组有6个,其中第一组整数中的25是第二组中的5的倍数,所以丢弃掉不合并。同样第一组中的93和第二组中的22也不合并到最后的数据中。另外第一组的61和第二组的61重复,只保留一个。最后按照从小到大的顺序输出合并后的数据为:2 3 5 13 61 67。
#include<stdio.h>
int main()
{
int a[20],b[20],c[40];
int i,j,m,n,t;
scanf("%d",&m);
for(i=0; i<m; i++)
{
scanf("%d",&a[i]);
c[i]=a[i];
}
scanf("%d",&n);
for(j=0; j<n; j++,i++)
{
scanf("%d",&b[j]);
c[i]=b[j];
}
for(j=1; j<m+n; j++)
for(i=0; i<m+n-j; i++)
{
if(c[i]>c[i+1])
{
t=c[i];
c[i]=c[i+1];
c[i+1]=t;
}
}
for(i=0; i<m+n; i++)
printf("%d ",c[i]);
return 0;
}
我的问题:不知道怎么去剔除一个数据是另一个数据的整数倍数据,求解!