两个数组,求第一个数组中不同的

用数组来刻划集合。编写程序,其功能如下:通过键盘,分别输入两个数据元素类型为正整数的集合AB,每个集合以负数输入为结束条件(该负数不是集合的元素)。在屏幕上输出集合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]);
}

猜你喜欢

转载自blog.csdn.net/acmer6s/article/details/80435425