成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

找出不是两个数组共有的元素

Q1:c语言编程:输入两个整型数组,每个数组中各有10个不同的元素,输出在两个数组中都出现的元素。

#include
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]);
}
}
}

Q2:C语言。找出不是两个数组共有的元素。

给定两个整型数组,本题要求找出不是两者共有的元素。

输入格式:

输入分别在2行中给出2个整型数组,每行先给出正整数N(<=20),随后是N个整数,其间以空格分隔。

输出格式:

在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。

输入样例:10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1、输出样例:3 5 -15 6 4 1、

我的想法是先拿A数组去跟B数组比一遍,然后再反过来比一遍,把不是共有的数放到C数组中,最后消去数组C中相同的数输出,这样输出的就不会存在同一个数了

拓展资料

编译/执行 C 程序

实例

实例解析:

所有的 C 语言程序都需要包含main()函数。 代码从main()函数开始执行。

/* ... */用于注释说明。

printf()用于格式化输出到屏幕。printf()函数在"stdio.h"头文件中声明。

stdio.h是一个头文件 (标准输入输出头文件) ,#include是一个预处理命令,用来引入头文件。 当编译器遇到printf()函数时,如果没有找到stdio.h头文件,会发生编译错误。

return 0;语句用于表示退出程序。

运行C程序,main(int argc, char *argv[])函数传参,argc为参数个数,argv是字符串数组, 下标从0开始,第一个存放的是可执行程序的文件名字,然后依次存放传入的参数,举个例子HelloWorld.c:

当是int main()时,main()的返回值是int类型,所以是return 0;现在C标准里规定main()返回值必须为int,所以必须写成是int main()。

Q3:给定两个整型数组,找出不是两者共有的元素。

判断a[i]是不是在b数组中

Q4:输入两个数组(数组元素个数自定),输出在两个数组中都不出现的元素

楼上两个答案都是漏洞百出,麻烦自己去试一下能不能行再来回答。。
我猜lz的意思是两个数组中都出现的则不要输出,题目中“则输出2、4、6、3、7、9、10、-1”这里面的3应该是不要输出的吧?
如果是这样,我给出的答案是
#include
using namespace std;
void main()
{
int a[5]={2,3,4,5,6};
int b[6]={3,5,7,9,10,-1};
int i,j;
for (i=0; i<5; i++)
for (j=0; j<6; j++)
if (a[i]==b[j])
a[i]=b[j]=0;
for (i=0; i<5; i++)
if (a[i])
cout << a[i] << "\t";
for (i=0; i<6; i++)
if (b[i])
cout << b[i] << "\t";
}
这行代码相比其他的方法优点是算法很简单;但是它有缺陷,两个数组中不能有0。当然如果要比较有0的数组可以把代码中a[i]=b[j]=0替换成别的用不上的数字,最后的输出if的条件也要作相应的修改,比如a[i]!=X。
我偷懒了直接用了lz提供的两个数组,lz可以自己把两个数组替换掉或者干脆在前面放cin输入,循环体中ij的值也相应地修改一下。
此代码在vc++6.0中测试通过。

猜你喜欢

更多