练习7-4 找出不是两个数组共有的元素(20 分)

Code: 

#include <stdio.h>

int main(void) {
	int n1, a[25], n2, b[25], i, j, c[20];
	int flag, n = 0;
	
	scanf("%d", &n1);    //输入第一个数组。
	for ( i=0; i<n1; i++ )
		scanf("%d", &a[i]);
		
	scanf("%d", &n2);    //输入第二个数组。
	for ( i=0; i<n2; i++ )
		scanf("%d", &b[i]);
		
	for ( i=0; i<n1; i++ ) {    //把第一个数组有,第二个没有的元素,存在c[]中。 
		flag = 0;
		for ( j=0; j<n2; j++ ) {
			if ( a[i] == b[j] )
				flag = 1;
		}
		if ( flag == 0 )
			c[n++] = a[i];
	}
	for ( i=0; i<n2; i++ ) {    //把第二个数组有,第一个没有的元素,存在c[]中。
		flag = 0;
		for ( j=0; j<n1; j++ ) {
			if ( b[i] == a[j] )
				flag = 1;
		}
		if ( flag == 0 )
			c[n++] = b[i];
	}
	
//	for ( i=0; i<n; i++ )    //检测一下c[]中的元素。
//		printf("%d ", c[i]);
//		printf("\n");
//	3 3 5 -15 6 4 6 1    //3 3 5 -15是第一个数组有的,6 4 6 1是第二个数组有的。
		
	printf("%d", c[0]);    //为了最后没有空格,先输出第一个数。
	for ( i=1; i<n; i++ ) {    //从c[1]开始进行对比。
		for ( j=0; j<i; j++ ) {    //限制条件到i,因为如果超过i,那下边的break就一定会执行。
			if ( c[i] == c[j] )    
				break;
		}
		if ( j == i )    //说明目前的数和已经输出的数,没有重复。
			printf(" %d", c[i]);
	}
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/YelloJesse/article/details/81067930
今日推荐