我的 C 代碼中有兩個陣列。array1 具有所有元素,但 array2 具有相同的元素,但缺少一些元素。我試圖找出 array2 中缺少的元素。它沒有顯示缺失的元素,而是顯示同時出現在陣列中并多次出現的元素。
string array1[] = { "aaa","bbb","ccc","ddd" };
string array2[] = { "aaa","bbb","ccc" };
for (i = 0; i <= 3; i )
{
for (int j = 0; j <= 2; j )
{
if (array1[i] == array2[j])
continue;
else
cout << array1[i] << endl;
}
}
'''

我嘗試使用嵌套的 for 回圈來嘗試將 array1 中的每個元素與 array2 中的所有元素進行比較。如果找到匹配項,則回圈應跳過并繼續下一次迭代,如果未找到匹配項,則應顯示在 array2 中未找到的元素。
uj5u.com熱心網友回復:
您實作代碼的邏輯有點錯誤。
因此,首先遍歷 array1 中的所有元素。
然后,檢查當前元素是否在 array2 中。為此,您可以使用一個標志。
如果不在,則列印它。
在可用的 C 演算法庫中甚至有標準函式。
但是讓我們使用以下解決方案:
#include <iostream>
#include <string>
using namespace std;
int main() {
string array1[] = { "aaa","bbb","ccc","ddd" };
string array2[] = { "aaa","bbb","ccc" };
for (int i = 0; i <= 3; i )
{
bool isPresent = false;
for (int j = 0; j <= 2; j )
if (array1[i] == array2[j])
isPresent = true;
if (not isPresent)
std::cout << array1[i] << '\n';
}
}
uj5u.com熱心網友回復:
您的代碼完全按照您撰寫的方式作業,但并不像您期望的那樣。讓我們分析一下。如果你aaa從中獲取array1,它將與 的所有字串進行比較array2,然后它將:
first element of array2: aaa -> continue
second element of array2: bbb -> print aaa
third element of array2: ccc -> print aaa
等等。你需要提高你的邏輯思維,而不是要求我們檢查你的代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/534271.html
標籤:C 循环嵌套循环
