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

เขียนโปรแกรม C ลบตัวเลขซ้ำในอาร์เรย์


ให้ผู้ใช้ป้อนตัวเลขในอาร์เรย์ ซึ่งมีองค์ประกอบซ้ำ

ตอนนี้ เขียนโค้ดเพื่อลบตัวเลขหรือองค์ประกอบที่ซ้ำในอาร์เรย์ และทำให้อาร์เรย์มีองค์ประกอบที่ไม่ซ้ำกัน

ตัวอย่าง:

  • อินพุตผู้ใช้: 12, 30, 12, 45, 67, 30
  • เอาต์พุต: 12, 30, 45, 67 (หลังลบซ้ำ)

โปรแกรม

โปรแกรม C ลบตัวเลขซ้ำในอาร์เรย์:

#include <stdio.h>
#define MAX 100 // ขนาดสูงสุดของอาร์เรย์

int main() {
    int array[MAX]; // ประกาศอาร์เรย์ขนาด 100
    int size;
    int i, j, k; // ตัวแปRLูป
    
    /* รับขนาดของอาร์เรย์ */
    printf("enter the size of array : ");
    scanf("%d", &size);
    
    /* รับองค์ประกอบในอาร์เรย์ */
    printf("Enter elements in an array : ");
    for(i = 0; i < size; i++) {
        scanf("%d", &array[i]);
    }
    
    /* หาองค์ประกอบซ้ำในอาร์เรย์ */
    for(i = 0; i < size; i++) {
        for(j = i + 1; j < size; j++) {
            /* หากพบซ้ำ */
            if(array[i] == array[j]) {
                /* ลบองค์ประกอบซ้ำปัจจุบัน */
                for(k = j; k < size; k++) {
                    array[k] = array[k + 1];
                }
                /* ลดขนาดหลังลบองค์ประกอบซ้ำ */
                size--;
                /* หากเกิดการเลื่อนองค์ประกอบ อย่าเพิ่ม j */
                j--;
            }
        }
    }
    
    printf("\nArray elements after deleting duplicates : "); /* พิมพ์อาร์เรย์หลังลบซ้ำ */
    for(i = 0; i < size; i++) {
        printf("%d\t", array[i]);
    }
    return 0;
}

ผลลัพธ์

ผลลัพธ์มีดังนี้:

enter the size of array : 10
Enter elements in an array : 23 12 34 56 23 12 56 78 45 56
Array elements after deleting duplicates : 23 12 34 56 78 45