赞
踩
给定两个整型数组,本题要求找出不是两者共有的元素。
输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。
在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。
输入 | 输出 | |
示例 1 | | |
- #include <stdio.h>
- #define MAX 20
-
- int main() {
- int i, j, m[MAX];
- int num1[MAX], num2[MAX];
- int len1, len2;
-
- scanf("%d", &len1);
- for (i = 0; i < len1; i++) {
- scanf("%d", &num1[i]);
- }
- /* 输入第一个数组 */
- scanf("%d", &len2);
- for (i = 0; i < len2; i++) {
- scanf("%d", &num2[i]);
- }
- /* 输入第二个数组 */
- int flag, cnt = 0;
- for (i = 0; i < len1; i++) {
- flag = 1;
- for (j = 0; j < len2; j++) {
- if (num1[i] == num2[j]) {
- flag = 0; /* 是共同的元素 */
- }
- }
- if (flag == 1) {
- m[cnt] = num1[i]; /* 放在数组m中 */
- cnt++;
- }
- }
- for (i = 0; i < len2; i++) { /* 故技重施,看第二个数组里有没有第一个数组没有的元素 */
- flag = 1;
- for (j = 0; j < len1; j++) {
- if (num2[i] == num1[j]) {
- flag = 0;
- }
- }
- if (flag == 1) {
- m[cnt] = num2[i];
- cnt++;
- }
- }
- printf("*%d", m[0]);
- for (i = 1; i < cnt; i++) { /* 输出没有重复元素的m数组 */
- flag = 1;
- for (j = i - 1; j >= 0; j--) {
- if (m[j] == m[i])
- flag = 0;
- }
- if (flag == 1)
- printf(" %d", m[i]);
- }
- return 0;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。