সমস্যা
ব্যবহারকারীর দ্বারা রানটাইমে একটি অ্যারে থেকে একটি উপাদান মুছে ফেলার জন্য একটি সি প্রোগ্রাম লিখুন এবং মুছে ফেলার পরে ফলাফলটি স্ক্রিনে প্রদর্শিত হবে। যদি মুছে ফেলা উপাদানটি একটি অ্যারেতে না থাকে, তাহলে আমাদের অবৈধ ইনপুট প্রদর্শন করতে হবে।
সমাধান
একটি অ্যারে একটি নামের অধীনে সাধারণ উপাদানগুলির গ্রুপ ধরে রাখতে ব্যবহৃত হয়।
অ্যারে অপারেশনগুলি নিম্নরূপ -
- ঢোকান
- মুছুন
- অনুসন্ধান করুন
অ্যালগরিদম
পয়েন্টারগুলির সাহায্যে একটি অ্যারেতে উপাদানগুলি মুছতে একটি অ্যালগরিদম পড়ুন৷
ধাপ 1 - উপাদানের সংখ্যা ঘোষণা করুন এবং পড়ুন।
ধাপ 2 - রানটাইমে অ্যারের আকার ঘোষণা করুন এবং পড়ুন।
ধাপ 3 - অ্যারের উপাদানগুলি ইনপুট করুন৷
৷ধাপ 4 - একটি পয়েন্টার ভেরিয়েবল ঘোষণা করুন।
ধাপ 5 - রানটাইমে গতিশীলভাবে মেমরি বরাদ্দ করুন।
ধাপ 6 - মুছে ফেলার জন্য একটি উপাদান লিখুন।
ধাপ 7 - মুছে ফেলার পরে, উপাদানগুলি একটি অবস্থান দ্বারা বাম দিকে স্থানান্তরিত হয়৷
৷উদাহরণ
অ্যারের আকার হল:5
অ্যারের উপাদানগুলি নিম্নরূপ -
1 2 3 4 5
যে উপাদানটি মুছে ফেলা হবে সেটির অবস্থান লিখুন:4
আউটপুট নিম্নরূপ -
After deletion the array elements are: 1 2 3 5
উদাহরণ
পয়েন্টার −
এর সাহায্যে একটি অ্যারেতে উপাদান সন্নিবেশ করার জন্য C প্রোগ্রামটি নিচে দেওয়া হল#include<stdio.h> #include<stdlib.h> void delete(int n,int *a,int pos); int main(){ int *a,n,i,pos; printf("enter the size of array:"); scanf("%d",&n); a=(int*)malloc(sizeof(int)*n); printf("enter the elements:\n"); for(i=0;i<n;i++){ scanf("%d",(a+i)); } printf("enter the position of element to be deleted:"); scanf("%d",&pos); delete(n,a,pos); return 0; } void delete(int n,int *a,int pos){ int i,j; if(pos<=n){ for(i=pos-1;i<n;i++){ j=i+1; *(a+i)=*(a+j); } printf("after deletion the array elements is:\n"); for(i=0;i<n-1;i++){ printf("%d\n",(*(a+i))); } } else{ printf("Invalid Input"); } }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত আউটপুট তৈরি করে −
enter the size of array:5 enter the elements: 12 34 56 67 78 enter the position of element to be deleted:4 After deletion the array elements are: 12 34 56 78