国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【基礎(chǔ)算法】[PTA]-找出不是兩個數(shù)組共有的元素

這篇具有很好參考價值的文章主要介紹了【基礎(chǔ)算法】[PTA]-找出不是兩個數(shù)組共有的元素。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

找出不是兩個數(shù)組共有的元素,數(shù)據(jù)結(jié)構(gòu)與算法,算法,PTA


找出不是兩個數(shù)組共有的元素

題目描述:

找出不是兩個數(shù)組共有的元素,數(shù)據(jù)結(jié)構(gòu)與算法,算法,PTA
找出不是兩個數(shù)組共有的元素,數(shù)據(jù)結(jié)構(gòu)與算法,算法,PTA

解題思路:

  • 【整體思路】:在兩個整型數(shù)組中,找出不是兩者共有的元素,意思就是既要在第一個數(shù)組中找出第二個數(shù)組中沒有出現(xiàn)的元素,也要在第二個數(shù)組中找出第一個數(shù)組中沒有出現(xiàn)的元素。所以這里可以每個數(shù)組做一次主體,將主體數(shù)組中每一個元素在另一個數(shù)組中走一遍,如果沒有與其相等的元素,就入入一個臨時數(shù)組(另外需要的數(shù)組,用來存放在兩個整型數(shù)組中,不是兩者共有的元素),直到主體數(shù)組遍歷完再將另一個數(shù)組作為主體數(shù)組走一遍。當(dāng)兩個數(shù)組都走完后,臨時數(shù)組里面的元素就是想要的元素,但是,這里可能會有重復(fù)的元素(假如一個數(shù)組中有兩個3,而這個3在另外一個數(shù)組中沒有出現(xiàn),那么這個3在臨時數(shù)組中就有兩個),所以最后在打印臨時數(shù)組每個元素的時候需要往前尋找看有沒有相同的元素,如果有就不用打印了,因為前面出現(xiàn)的已經(jīng)打印過了。

  • 據(jù)此,這里可以用兩個循環(huán)分別來找出在這個數(shù)組中出現(xiàn)而另一個數(shù)組沒有出現(xiàn)的元素。

  • 兩個循環(huán)每一個循環(huán)都是嵌套了一層循環(huán),就是將當(dāng)前數(shù)組的每一個元素在另一個數(shù)組中走一遍。

代碼實現(xiàn):

#include <stdio.h>

int main()
{
	// 目標(biāo)數(shù)組 
	int a1[20] = { 0 };
	// 目標(biāo)數(shù)組
	int a2[20] = { 0 };
	// 臨時數(shù)組
	int a3[20] = { 0 };
	
	// 分別表示兩個數(shù)組的長度(元素個數(shù))
	int n, m;
	
	// 先輸入的表示 a1 的長度,然后輸入目標(biāo)數(shù)組 a1 的每個元素
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &a1[i]);
	}
	
	// 先輸入的表示 a2 的長度,然后輸入目標(biāo)數(shù)組 a2 的每個元素
	scanf("%d", &m);
	for (int i = 0; i < m; i++)
	{
		scanf("%d", &a2[i]);
	}
	
	// k 為臨時數(shù)組的索引
	int k = 0;
	for (int i = 0; i < n; i++)
	{
		// flag表示假設(shè)當(dāng)前元素在另一個數(shù)組中不出現(xiàn)
		int flag = 1;

		for (int j = 0; j < m; j++)
		{
			// 如果找到相同的元素,就將 flag 置為 0 ,假設(shè)不成立
			if (a1[i] == a2[j])
			{
				flag = 0;
			}
		}
		
		// 如果假設(shè)成功,就將當(dāng)前元素放入臨時數(shù)組
		if (flag) a3[k ++] = a1[i];
	}

	for (int i = 0; i < m; i++)
	{
		int flag = 1;

		for (int j = 0; j < n; j++)
		{
			if (a2[i] == a1[j])
			{
				flag = 0;
			}
		}

		if (flag) a3[k++] = a2[i];
	}
	
	// 打印臨時數(shù)組的數(shù)據(jù),重復(fù)的只打印一次
	for (int i = 0; i < k; i++)
	{
		int flag = 1;
		
		// 向前尋找看有沒有相同元素
		for (int j = 0; j < i; j++)
		{
			// 有就將 flag 置為 0 ,后面的 if 就不進(jìn)去 
			if (a3[i] == a3[j])
			{
				flag = 0;
			}
		}
		
		// 如果 flag 為 1 ,說明當(dāng)前的元素沒有重復(fù),進(jìn)入 if
		if (flag)
		{
			// 控制輸入格式,題目會檢查
			if (!i)
			{
				// 如果是第一個元素就不打印空格
				printf("%d", a3[i]);
			}
			else
			{
				// 將空格往前打印,因為最后不能有空格
				printf(" %d", a3[i]);
			}
		}
	}

	return 0;
}

感謝閱讀本小白的博客,錯誤的地方請嚴(yán)厲指出噢~

找出不是兩個數(shù)組共有的元素,數(shù)據(jù)結(jié)構(gòu)與算法,算法,PTA文章來源地址http://www.zghlxwxcb.cn/news/detail-757956.html

到了這里,關(guān)于【基礎(chǔ)算法】[PTA]-找出不是兩個數(shù)組共有的元素的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包