编写一个程序来输入数组中的元素,然后打印数组中所有唯一的元素。输入数组元素:1 1 2 2 3,,我想找到不重复的num

问题描述 投票:0回答:1

我需要简单的C++答案

就像我使用的代码一样,它会打印出重复的数字

#include <iostream>

using namespace std;

int main() {

    int arr[5], arr2[5], i = 0, j = 0;
    
    cout << "enter elements of array:\n";
    
    
    for (i = 0; i < 5; i++) {
    
        cin >> arr[i];  }
    
    for (i = 0; i < 5; i++) {
    
        for (j = 0; j < i; j++) {
    
            if (arr[i] == arr[j])break;
            
        }
    
        if (i == j) cout << arr[i];
        
    }

}
visual-c++
1个回答
0
投票

您需要循环数组并将另一个循环嵌套到数组中以查看是否已经找到该元素。

#include <iostream>

int main() {
    bool found = false;
    int array[] = {1, 4, 5, 3, 7, 5, 2, 7};
    int length = sizeof(array) / sizeof(array[0]);
    for (int i = 0; i < length; i++) {
        found = false;
        for (int j = 0; (!found) && (j < i); j++) {
            if (array[i] == array[j]) found = true;
        }
        if (!found) std::cout << array[i] << " ";
    }
}

您还可以创建一个

std::set
并尝试
insert
所有数组元素并在成功时将其打印出来(这意味着它们是第一次遇到):

#include <iostream>
#include <set>

int main() {
    int array[] = {1, 4, 5, 3, 7, 5, 2, 7};
    int length = sizeof(array) / sizeof(array[0]);
    std::set<int> myset;
    for (int i = 0; i < length; i++) {
        if (myset.insert(array[i]).second) {
            std::cout << array[i] << " ";
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.