鱼C论坛

 找回密码
 立即注册
查看: 1354|回复: 2

[技术交流] 求集合A和集合B的交集,即所有同时在集合A和集合B中的元素。已知数组a存放集合A的...

[复制链接]
发表于 2021-12-9 21:11:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求集合A和集合B的交集,即所有同时在集合A和集合B中的元素。已知数组a存放集合A的元素,共10个整数:

{1,3,5,7,9,11,13,15,17,19}

编程完成: 输入整数k(1<=k<=10),表示集合B元素的个数;输入集合B的各元素,集合元素各不相同;求集合A和集合B的交集C,输出交集C中的各个元素。
pta平台说我的答案部分正确,为什么?

#include<stdio.h>
#include<math.h>
int main()
{
    int a[10]={1,3,5,7,9,11,13,15,17,19};
    int b[10],i,j,k;
    scanf("%d",&k);
        for(i=0;i<k;i++)
                scanf("%d",&b[i]);
    int c[10];
    int c_ptr=0;
    for(int i=0;i<10;i++) {for(int j=0;j<10;j++) {if(a[i]==b[j]) c[c_ptr++] = a[i];}}

    for(int i=0;i<c_ptr;i++) printf("%d ",c[i]);
    system("pause");
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-9 21:50:40 | 显示全部楼层
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int A[10] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
  5.     int B[10] = {0}, C[10] = {0}, k;
  6.     scanf("%d", &k);
  7.     for(size_t i = 0, n = 0; i < 10; i++){
  8.         scanf("%d", &B[i]);
  9.         for(size_t j = 0; j < 10; j++){
  10.             if(A[j] == B[i]) C[n++] = A[j];
  11.         }
  12.     }
  13.     for(size_t i = 0; C[i]; i++) printf("%d ", C[i]);
  14.     return 0;
  15. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-9 21:55:20 | 显示全部楼层
另外一种解法:
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int A[10] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
  5.     int k, B[10] = {0}, C[10] = {0};
  6.     scanf("%d", &k);
  7.     for(size_t i = 0, n = 0; i < 10; i++){
  8.         scanf("%d", &B[i]);
  9.         if(B[i]%2 && B[i] < 20) C[n++] = B[i];
  10.     }
  11.     for(size_t i = 0; C[i]; i++) printf("%d ", C[i]);
  12.     return 0;
  13. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-23 02:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表