赞
踩
写题思路:
比较共有元素,存入数组中更容易比较;
数组a中的第一个元素和数组b中元素一一比较,若相等就不存入新数组,然后第二个元素再和数组b中的元素一一比较循环往复。反过来也一样;
验证过后发现输出结果有重复,所以进行去重;
提交后发现格式不对,因为最后不能有空格,写个判断完事;
#include<stdio.h> #include<math.h> int tmp[999]={0},index=0; void find(int a,int b[],int len){//找到不是两数组共有的元素 int flag=0; for(int i=0;i<len;i++){ if(a==b[i]){ flag=1; } } if(flag==0){ tmp[index++]=a; } } int main(){ int num1,num2,a[999],b[999],n; scanf("%d",&num1); for(int i=0;i<num1;i++){ scanf("%d",&a[i]);//数字存入数组 } scanf("%d",&num2); for(int j=0;j<num2;j++){ scanf("%d",&b[j]); } for(int k=0;k<num1;k++){ find(a[k],b,num2);//调用find函数 } for(int s=0;s<num2;s++){ find(b[s],a,num1); } for(int s=0;s<index;s++){//删除重复的一个元素,后面的数往前挪 for(int p=s+1;p<index;p++){ if(tmp[s]==tmp[p]){ for(int d=p;d<index-1;d++){ tmp[d]=tmp[d+1]; } index--; } } } for(int f=0;f<index;f++){//格式错误,最后一个输出的数字后面不能有空格 if(f==index-1){ printf("%d",tmp[f]); } else printf("%d ",tmp[f]); } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。