ให้ผู้ใช้ป้อนตัวเลขในอาร์เรย์ ซึ่งมีองค์ประกอบซ้ำ
ตอนนี้ เขียนโค้ดเพื่อลบตัวเลขหรือองค์ประกอบที่ซ้ำในอาร์เรย์ และทำให้อาร์เรย์มีองค์ประกอบที่ไม่ซ้ำกัน
ตัวอย่าง:
- อินพุตผู้ใช้: 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