这个程序用C++怎么编啊,顺便解释一下

问题描述:

 

数组中的整数有重复吗

所谓集合相等,是不是指两个数组中都整数集合是一样的?

bool Find_intNum(int a[],int n,int x)
{
    for(int i=0;i<n;i++)
        if(a[i] == x)
            return true;
    return false;
}

void main()
{
    int a[10],b[10];
    int i=0;
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    for(i=0;i<10;i++)
        scanf("%d",&b[i]);

    bool bOK = true;
    for(i=0;i<10;i++)
        if(!Find_intNum(a,10,b[i]))
        {
            bOK = false;
            break;
        }
    if(bOK)
    {
        for(i=0;i<10;i++)
        if(!Find_intNum(b,10,a[i]))
        {
            bOK = false;
            break;
        }
    }
    if(bOK)
        printf("集合相同");
    else
        printf("集合不同");
}

对比两个集合是否相等,主要是对比里面的数据库是否依次相等,题主需要代码吗

就是检测 两组数据的数据是否一致呀。 但是记得要做好区分数据重复的检测。

看题目的意思是,只有a1和a2中的元素一致即可,没有考虑位置是否一致。代码如下,如有帮助,请采纳一下,谢谢。

#include <iostream>
using namespace std;
bool Find_intNum(int a[],int n,int x)
{
	int i = 0;
	for (i = 0; i < n; i++)
	{
		if(a[i] == x)
			return true;
	}
	return false;
}

int main()
{
	int a1[10],a2[10];
	int i,j;
	bool b = true;
	cout << "请输入a1的10个数据:" ;
	for(i = 0; i < 10; i++)
		cin >> a1[i];
	cout << "请输入a2的10个数据:" ;
	for(i = 0; i < 10; i++)
		cin >> a2[i];

	//这种方法没考虑元素的位置
	for (i = 0; i < 10; i++)
	{
		//判断a1的元素是否都在a2中
		if(!Find_intNum(a2,10,a1[i]))
		{
			b = false;
			break;
		}
		//判断a2的元素是否都在a1中
		if(!Find_intNum(a1,10,a2[i]))
		{
			b = false;
			break;
		}

	}
	if (b)
	{
		cout << "两个集合相等" << endl;
	}else
		cout <<"两个集合不相等" << endl;
	return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632