• 实验7-1-4-一维数组 找出不是两个数组共有的元素 (20 分)


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

    输入格式:

    输入分别在两行中给出两个整型数组,每行先给出正整数N(≤),随后是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
     1 #include <stdio.h>
     2 int main()
     3 {
     4     int one[30] = { 0 };
     5     int two[30] = { 0 };
     6     int three[30] = { 12 };
     7     int N,M,i,j,h,k=0;
     8     scanf("%d", &N);
     9     for (i = 0; i < N; i++) {
    10         scanf("%d", &one[i]);
    11     }
    12     scanf("%d", &M);
    13     for (j = 0; j < M; j++) {
    14         scanf("%d", &two[j]);
    15     }
    16     int cnt = 0;
    17     for (i = 0; i < N; i++) {
    18         cnt = 0;
    19         for (j = 0; j < M; j++) {
    20             if (one[i] == two[j]) {
    21                 cnt = 1;
    22                 break;
    23             }
    24         }
    25         if (cnt == 0) {
    26             for (h = 0; h < k+1; h++) {
    27                 if (three[h] == one[i]&&three[h]!=0) {
    28                     cnt = 1;
    29                 }
    30             }
    31             if (cnt == 0) {
    32                 three[k] = one[i];
    33                 k++;
    34             }
    35         }
    36     }
    37     for (j = 0; j < M; j++) {
    38         cnt = 0;
    39         for (i = 0; i < N; i++) {
    40             if (two[j] == one[i]) {
    41                 cnt = 1;
    42                 break;
    43             }
    44         }
    45         if (cnt == 0) {
    46             for (h = 0; h < k + 1; h++) {
    47                 if (three[h] == two[j]&&three[h] != 0) {
    48                     cnt = 1;
    49                 }
    50             }
    51             if (cnt == 0) {
    52                 three[k] = two[j];
    53                 k++;
    54             }
    55         }
    56     }
    57     for (h = 0; h < k - 1; h++) {
    58         printf("%d ", three[h]);
    59     }
    60     printf("%d", three[h]);
    61     return 0;
    62 
    63 }

    第一次忽略了输出的数有0的情况,其与数组初始化为0冲突,改进了这行代码后能解决当three[h]等于零时造成的错误答案。

  • 相关阅读:
    SQLite Java Wrapper/JDBC Driver(收集)
    JAVA 并行运行(收集)
    log4net使用方法(转载)
    WMI服务故障,VBS脚本无法运行错误
    ArcEngine中UID使用资料收集
    使用 ArcGIS Engine Runtime 制作安装包(转载)
    Eclipse安装WindowBuilder Pro(转载)
    C#操作SQL Server数据库
    自动化测试 (三) Web自动化测试原理
    HTTP协议 (六) 状态码详解
  • 原文地址:https://www.cnblogs.com/nekonekomiao/p/11617486.html
Copyright © 2020-2023  润新知