ปัญหา
เขียนโปรแกรม C เพื่อค้นหาองค์ประกอบจากอาร์เรย์ที่รันไทม์โดยผู้ใช้และผลลัพธ์ที่จะแสดงบนหน้าจอหลังจากการค้นหา หากองค์ประกอบการค้นหาไม่อยู่ในอาร์เรย์ เราต้องค้นหาองค์ประกอบไม่พบ
วิธีแก้ปัญหา
อาร์เรย์ใช้เพื่อเก็บกลุ่มขององค์ประกอบทั่วไปภายใต้ชื่อเดียว
การทำงานของอาร์เรย์มีดังนี้ −
- แทรก
- ลบ
- ค้นหา
อัลกอริทึม
อ้างอิงอัลกอริธึมเพื่อค้นหาองค์ประกอบในอาร์เรย์โดยใช้พอยน์เตอร์ -
ขั้นตอนที่ 1 - ประกาศและอ่านจำนวนองค์ประกอบ
ขั้นตอนที่ 2 - ประกาศและอ่านขนาดอาร์เรย์ที่รันไทม์
ขั้นตอนที่ 3 - ป้อนองค์ประกอบอาร์เรย์
ขั้นตอนที่ 4 - ประกาศตัวแปรตัวชี้
ขั้นตอนที่ 5 - จัดสรรหน่วยความจำแบบไดนามิกที่รันไทม์
ขั้นตอนที่ 6 - ป้อนองค์ประกอบที่จะค้นหา
ขั้นตอนที่ 7 - ตรวจสอบว่าองค์ประกอบที่มีอยู่ในอาร์เรย์โดยการสำรวจ หากพบองค์ประกอบให้แสดง "ใช่" มิฉะนั้น "ไม่ใช่"
ตัวอย่าง
ขนาดของอาร์เรย์คือ:5
องค์ประกอบอาร์เรย์มีดังนี้:
1 2 3 4 5
ป้อนองค์ประกอบที่จะค้นหา:4
ผลลัพธ์จะเป็นดังนี้ −
4 is present in the array
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C เพื่อลบองค์ประกอบในอาร์เรย์โดยใช้พอยน์เตอร์ -
#include<stdio.h>
int i,l;
int search(int ,int *,int);
int main(){
int n,m;
printf("enter the size of array:");
scanf("%d",&n);
int a[n];
printf("enter the elements:\n");
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
printf("enter the element to be searched:");
scanf("%d",&m);
search(n,a,m);
return 0;
}
int search(int n,int *a,int m){
for(i=0;i<n;i++){
if(m==a[i]){
l=1;
break;
}
}
if(l==1){
printf("%d is present in the array",m);
} else {
printf("%d is not present in the array",m);
}
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Run 1: enter the size of array:5 enter the elements: 14 12 11 45 23 enter the element to be searched:11 11 is present in the array Run 2: enter the size of array:3 enter the elements: 12 13 14 enter the element to be searched:45 45 is not present in the array