C语言 两个数组中同时存在的数

作者: wangyanhpa分类: 校园学习 发布时间: 2023-05-08 08:39:06 浏览:609 次

C语言 两个数组中同时存在的数

wangyanhpa:
#include "stdio.h" int main() { int a【10】,b【10】,c【10】,i,j,k=0; int count=0,n,t,flag=0,m; for(i=0;i<10;i++) scanf("%d",&a【i】); for(i=0;i<10;i++) scanf("%d",&b【i】); for(i=0;i<10;i++) { n=a【i】; for(j=0;j<10;j++) { if (n==b【j】) { for(m=0;m<k;m++) { flag=0; if (n==c【m】) { flag=1; break; } } if (flag==0) { c【k】=n; k++; count++; } } } } if(count>0) { //sort for(i=0;i<k-1;i++) for(j=0;j<k-1-i;j++) if(c【j】<c【j+1】) { t=c【j】; c【j】=c【j+1】; c【j+1】=t; } for(i=0;i<k;i++) printf("%d ",c【i】); } else printf("count=0\n"); return 0; }

【回复】老师,可以直接不写n等于a【i】,直接判断a【i】==b【j】吗?
wangyanhpa:
int main() { int i,j,a【10】,b【10】,c【10】,k=0,count=0,n,flag=0; input(a); input(b); for (i=0;i<10;i++) { n=a【i】; for(j=0;j<10;j++) { if (n==b【j】) { flag=find(n,c,k); if (flag==0) { c【k】=n; k++; count++; break; } } } } if (count>0) { //sort sort(c,k); output(c,k); } else printf("count=0\n"); return 0; }

wangyanhpa:
考虑如何改成函数实现? 参考代码如下: #include "stdio.h" //输入10个整数到数组arr中 void input(int arr【10】) { int i; for(i=0;i<10;i++) scanf("%d",&arr【i】); } //输出数组arr,arr中有n个整数元素 void output(int arr【】,int n) { int i; for(i=0;i<n;i++) printf("%d ",arr【i】); } //查找整数zhao是否在数组arr中,arr中有n个整数元素 //找到返回1,没找到返回0 int find(int zhao,int arr【】,int n) { int i,flag=0; for(i=0;i<n;i++) { if(zhao==arr【i】) { flag=1; return flag; } } return flag; } //对数组arr冒泡排序,arr中有n个整数元素 void sort(int arr【】,int n) { int i,j,t; for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++) if (arr【j】<arr【j+1】) { t=arr【j】; arr【j】=arr【j+1】; arr【j+1】=t; } }

wangyanhpa:
flag=0;合理的方式应该放到 for(m=0;m<k;m++) 前一行

C语言 两个数组交集

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!