91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c語言怎么找出數組中重復的數字

小億
194
2023-10-25 22:39:38
欄目: 編程語言

可以使用兩種方法來找出數組中重復的數字。

方法一:使用“哈希表”

  1. 創建一個哈希表,用于記錄每個數字出現的次數。
  2. 遍歷數組,將數組中的每個數字作為鍵,放入哈希表中,并將對應的值加1。
  3. 遍歷哈希表,找出值大于1的鍵,即為重復的數字。

示例代碼如下:

#include <stdio.h>

void findDuplicates(int arr[], int size) {
    // 哈希表
    int hashTable[1000] = {0};
    
    // 遍歷數組,將數字放入哈希表
    for (int i = 0; i < size; i++) {
        hashTable[arr[i]] += 1;
    }
    
    // 遍歷哈希表,找出重復的數字
    for (int i = 0; i < 1000; i++) {
        if (hashTable[i] > 1) {
            printf("%d ", i);
        }
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 4, 5, 6, 6, 7};
    int size = sizeof(arr) / sizeof(arr[0]);
    
    printf("重復的數字為:");
    findDuplicates(arr, size);
    
    return 0;
}

方法二:使用“交換法”

  1. 遍歷數組,將數組中的每個數字放到對應的索引位置上。
  2. 如果當前索引位置上已經有了相同的數字,則找到了一個重復的數字。

示例代碼如下:

#include <stdio.h>
#include <stdbool.h>

void findDuplicates(int arr[], int size) {
    printf("重復的數字為:");
    
    for (int i = 0; i < size; i++) {
        while (arr[i] != i) {
            if (arr[i] == arr[arr[i]]) {
                printf("%d ", arr[i]);
                break;
            }
            
            int temp = arr[arr[i]];
            arr[arr[i]] = arr[i];
            arr[i] = temp;
        }
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 4, 5, 6, 6, 7};
    int size = sizeof(arr) / sizeof(arr[0]);
    
    findDuplicates(arr, size);
    
    return 0;
}

以上兩種方法都可以找出數組中重復的數字,選擇哪種方法取決于具體的需求和數據規模。

0
普安县| 泰和县| 当雄县| 顺昌县| 巨野县| 枣强县| 锡林浩特市| 方山县| 措美县| 遂昌县| 小金县| 常熟市| 枣阳市| 西盟| 合肥市| 乃东县| 神池县| 临颍县| 凤冈县| 且末县| 汤阴县| 布拖县| 青神县| 拉萨市| 南郑县| 营山县| 田阳县| 嘉祥县| 上杭县| 托克托县| 永仁县| 宝鸡市| 两当县| 定边县| 永安市| 邢台市| 叙永县| 通化市| 钟山县| 天镇县| 招远市|