Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C หาสมาชิกที่ไม่ซ้ำในอาร์เรย์ (Unique Elements)

ปัญหา: หาค่าที่ปรากฏเพียงครั้งเดียวในอาร์เรย์

ใช้ลูปซ้อน 2 ชั้น: ลูปนอกเดินแต่ละสมาชิก ลูปในตรวจสอบว่ามีค่าเดียวกันอยู่ที่อื่นหรือไม่ ถ้าไม่มี ให้พิมพ์ค่านั้น

อัลกอริทึม

  1. อ่าน n และค่าอาร์เรย์
  2. สำหรับ i = 0 ถึง n-1: ตรวจสอบ j = 0 ถึง n-1 ถ้า array[i] == array[j] และ i != j ให้ break
  3. ถ้าจบลูปในไม่พบค่าซ้ำ (j == n) ให้พิมพ์ array[i]

โค้ด C

#include <stdio.h>
#include <stdlib.h>

int uniqueEle(int array[], int n) {
    int i, j;
    int count = 1;
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            if (array[i] == array[j] && i != j)
                break;
        }
        if (j == n) {
            printf("\nunique elements in an array is [%d] : %d \n", count, array[i]);
            ++count;
        }
    }
    return -1;
}

int main() {
    int n, i;
    printf("\nEnter no: of elements : ");
    scanf("%d", &n);
    int array[n];
    printf("\nenter the array elements : ");
    for (i = 0; i < n; i++) {
        scanf("%d", &array[i]);
    }
    uniqueEle(array, n);
    return 0;
}

ตัวอย่าง Output

Run 1:
Enter no: of elements: 5
enter the array elements : 11 11 15 16 13
unique elements in an array is [1] : 15
unique elements in an array is [2] : 16
unique elements in an array is [3] : 13

Run 2:
Enter no: of elements: 4
enter the array elements : 11 12 11 11
unique elements in an array is [1] : 12