人见人爱A-B
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 43501 Accepted Submission(s): 12237
呵呵,很简单吧?
如果n=0并且m=0表示输入的结束,不做处理。
3 3 1 2 3 1 4 7 3 7 2 5 8 2 3 4 5 6 7 8 0 0
2 3 NULL题目大意:如果A集合中有元素不等于B集合任意元素则输出A中该元素解题思路:将A中元素分别遍历B集合元素,没有相同则将该元素保存在另一集合C中,通过sort函数从小到大排列输出。注意:最后一个元素之后也要加空格。附代码:#include <stdio.h> #include <algorithm> using namespace std; int main() { int m,n,i,j,t,k,g,h,temp; int a[100],b[100],c[100]; /*输入部分*/ while(scanf("%d%d",&n,&m)!=EOF) { if(m==0&&n==0) break; else { for(i=0;i<n;i++) scanf("%d",&a[i]); for(j=0;j<m;j++) scanf("%d",&b[j]); /*数据处理部分*/ t=0; /*满足输出集合元素的个数及数组C的下标*/ for(i=0;i<n;i++) { k=0; for(j=0;j<m;j++) { if(a[i]!=b[j]) k++; } /*将数组a中与数组b不同的元素依次赋给数组c*/ if(k==m) { c[t]=a[i]; t++; } } sort(c,c+t); /*冒泡排序法,由小到大排序*/ /* for(g=0;g<t;g++) for(h=(g+1);h<t;h++) { if(c[g]>c[h]) { temp=c[g]; c[g]=c[h]; c[h]=temp; } } */ /*输出结果*/ for(g=0;g<t;g++) printf("%d ",c[g]); if(t!=0) printf("\n"); else printf("NULL\n"); } } return 0; }
1181




被折叠的 条评论
为什么被折叠?



