题目链接
这道题难度不大。但做完这个,有很多收获,首先还是要认真检查代码,一些变量的使用不要出错。
其次就是要注意,break 和continue的区别,一个是结束本次循环,开启下个循环,而另一个是直接结束循环,用的时候要考虑清楚该用什么,盲目的用,会导致都不知道错哪!最后,写代码要仔细认真!!!(重要的话要多说)
代码如下:
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[100], b[100];
int main()
{
int n, m;
while (scanf("%d%d", &n, &m) != EOF)
{
if (n == 0 && m == 0) break;
for (int i = 0;i < n;i++) scanf("%d", &a[i]);
for (int i = 0;i < m;i++) scanf("%d", &b[i]);
int x[100] = {0};
int t = 0;
for (int i = 0;i < n;i++)
{
int mark = 0;
for (int j = 0;j < m;j++)
{
if (a[i] == b[j]) { mark = 1;break; }
}
if (mark == 0) x[t++] = a[i];
}
if (t == 0) {
printf("NULL\n");continue;
}
else {
sort(x, x + t);
for (int i = 0;i < t;i++)
{
printf("%d", x[i]);
if (i != t - 1) printf(" ");
else printf(" \n");;
}
}
}
return 0;
}