c语言 输入两个数组 从两个数组中找出不同的元素

如题所述

#include<stdio.h>
int main(void)
{
int m,n;
int p;

printf("Enter m an n: ");
scanf("%d%d",&m,&n);
int a[m],b[n];
int c[m+n];
int count = 0;

int i,j;
printf("Enter %d numbers for a: ",m);
for(i = 0;i < m;i ++){
scanf("%d",&a[i]);
}
printf("Enter %d numbers for b: ",n);
for(i = 0;i < n; i ++){
scanf("%d",&b[i]);
}
//a数组 与 b数组的元素比较
for(i = 0;i < m;i ++){
for(j = 0;j < n;j ++){
p = 1;
if(a[i] == b[j]){
p = 0;
break;
}
}
if(p == 1){
c[count] = a[i];
count ++;
}
}

//b数组 与 a数组的元素比较
for(i = 0;i < n;i ++){
p = 1;
for(j = 0;j < m;j ++){
if(b[i] == (float)a[j]){
p = 0;
break;
}
}
if(p == 1){
c[count] = (float)b[i];
count ++;
}
}

for(i = 0;i < count;i ++){
p = 1;
for(j = i - 1;j >= 0;j --){
if(c[i] == c[j]){
p = 0;
break;
}
}
if(p == 1){
printf("%d ",c[i]);
}
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-04-26
参考
#include<stdio.h>
void main(){
int a[10];
int b[10];
int a1,a2;
printf("请输入第1个数组的10个整数");
printf("\n");
for(int i=0;i<10;i++){
scanf("%d",&a1);
a[i]=a1;
}
printf("请输入第2个数组的10个整数");
printf("\n");
for(i=0;i<10;i++){
scanf("%d",&a2);
b[i]=a2;
}
for(i=0;i<10;i++){
for(int j=0;j<10;j++){
if(a[i]==b[j])
printf("%d ",a[i]);
}
}
}追问

这个输出的不是相同的元素吗?

追答

将if(a[i]==b[j])改为不等于就不就行了吗

本回答被网友采纳
第2个回答  2020-02-20
#include<stdio.h>
int main(void)
{
int a[10],b[10];
int i,j,n,m,temp,count;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%d",&b[i]);
}
for(i=0;i<m;i++)
{

for(j=0;j<n;j++)
{
if(a[j]==b[i])
{
count=1;
break;
}
else
{
temp=b[i];
}

}
if(count!=1)
{
printf("%d",temp);
}
else
{
count=0;
}
}
if(count==0)
printf("没有共同数");
return 0;
}
相似回答