题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2034
人见人爱A-B
算法分析:用flag标志A与B相同的元素,不同时装入第三个数组。
注意:题目要求输出每个元素后有一个空格,不要用以往处理空格的方式做题,否则会出Presentation Error
我的ac代码:
#include<stdio.h> void Insertion_Sort(int a[], int n)//直接插入排序 { int i, j; for (i = 1; i < n; i++) { int temp = a[i]; for (j = i; j > 0 && a[j - 1] > temp; --j) a[j] = a[j - 1]; a[j] = temp; } } int main() { int n, m; int a[100], b[100], c[100]; while (~scanf("%d %d", &n, &m) && n!=0||m!=0) { for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } for (int i = 0; i < m; i++) { scanf("%d", &b[i]); } int flag = 1, k = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (a[i] == b[j]) { flag = 0; } } if (flag) { c[k] = a[i]; k++; } flag = 1; } if (k == 0) { printf("NULL"); } else { Insertion_Sort(c, k); // printf("%d", c[0]); for (int i = 0; i < k; i++) { printf("%d ", c[i]); } } printf("\n"); } return 0; }