用数组来刻划集合。编写程序,其功能如下:通过键盘,分别输入两个数据元素类型为正整数的集合A和B,每个集合以负数输入为结束条件(该负数不是集合的元素)。在屏幕上输出集合A-B的结果。
例如 输入: A={1,2,3,4,5} B={3,4,5,6,7}
输出 A-B={1, 2}
#include<stdio.h> #define N 1000 int main() { int a[N],b[N],c[N],n=0,m=0,flag,p=0; for(int i=0;i<N;i++) { scanf("%d", &a[i]); n++; if(a[i]<0) break; } for(int i=0;i<N;i++) { scanf("%d", &b[i]); //如果把这三行位置换成这样就不用考虑下面for循环的不把负数写进去 m++; // if(b[i]<0) if(b[i]<0) // break; break; // m++; } for(int i=0;i<n-1;i++)//n-1,m-1是为了不把负数写进去 { int s=0; for(int j=0;j<m-1;j++) { if(a[i]!=b[j]) s++; else break; } if(s==m-1) { p++; c[p]=a[i]; } else continue; } for(int i=1;i<=p;i++) printf("%d ", c[i]); }