ปัญหา
เขียนโปรแกรม 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