从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集“异或”)。
【输入形式】
首先输入第一组整数,以一个空格分隔各个整数;然后在新的一行上输入第二组整数,以一个空格分隔,行末有回车换行。
【输出形式】
按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现的整数,以一个空格分隔各个整数)。根据上述要求修改我的代码#include <stdio.h> void bubbleSort(int a[], int sig[],int n) { int i, j; int hold; for(i = 0; i<n-1; i++){ if(sig[i]==0){ for(j = 0; j < n-1-i; j++) if(a[j] > a[j + 1]) { hold = a[j]; a[j] = a[j + 1]; a[j + 1] = hold; } } else continue;//具备筛选功能的冒泡排序 }
}
int a[25],b[25],c[45],sig[45]; int main() { int i=0,j=0; while (scanf("%d", &a[i]) != EOF) { i++; }//输入集合A while (scanf("%d", &b[j]) != EOF) { j++; }//输入集合B for(int k=0;k<i;k++){ c[k]=a[k]; } for(int k=i;k<i+j;k++){ c[k]=b[k-i]; }//两数组合并 for(int k=0;k<i+j;k++){ for(int l=0;l<i+j;l++){ if(c[k]==c[l]&&k!=l){ sig[k]=1; sig[l]=1; } } }//两层遍历查找其中既属于A又属于B的元素 for(int k=i+j;k<45;k++) sig[k]=1; bubbleSort(c,sig,i+j); for(int k=0;k<i+j;k++) printf("%d ",c[k]);
return 0;
}