//A集合相对于B集合的差集
#include <iostream>
using namespace std;
int main(){
int A[100], B[100], C[100];
int n, m;
//第一次提交,(n != 0 && m != 0),&& 和 || 一段时间不用不记得- -
while (cin >> n >> m && (n != 0 || m != 0)){
int x = 0,temp=0;
//输入
for (int i = 0; i < n; i++)
cin >> A[i];
for (int j = 0; j < m; j++)
cin >> B[j];
//A集合的单个跟B集合每个比较,到B集合尾仍然不同,保存到C集合中
for (int i = 0; i < n; i++){
int num = 0;
for (int j = 0; j < m; j++){
if (A[i] != B[j])
num++;
else
break;
}
//这里temp是统计有多少个差值;
if (num == m){
C[x++] = A[i];
temp++;
}
// 求 A-B ,不用求B中相对于A多出来的数
/*
//B集合的单个跟A集合每个比较,到A集合尾仍然不同的,保存到C集合中
for (int j = 0; j < m; j++){
int num = 0;
for (int i = 0; i < n; i++){
if (B[j] != A[i]){
num++;
}
else
break;
}
if (num == n)
C[x++] = B[j];
}
*/
if (temp == 0){
cout << "NULL" << endl;
}
else{
//C集合冒泡排序,小的在前
for (int i = 0; i < x-1; i++){
for (int j = i + 1; j < x; j++){
if (C[i]>C[j])
{
//小的放前面一位;
C[i] = C[i] + C[j];
C[j] = C[i] - C[j];
C[i] = C[i] - C[j];
}
}
}
//输出
for (int y = 0; y < x; y++){
cout << C[y] << " ";
}
cout << endl;
}
x = 0;
temp = 0;
}
return 1;
}
杭电ACM:人见人爱A-B

最新推荐文章于 2021-01-15 10:55:33 发布
