সমস্যা
একটি সি প্রোগ্রাম লিখুন যা অ্যারে টাইপ বের করবে, অর্থাৎ দেয়া এলিমেন্টগুলো ইভেন নম্বর, অড্ড নম্বর নাকি উভয়ের মিশ্রণ কিনা পয়েন্টার ব্যবহার করে চেক করবে।
সমাধান
ইউজারকে ইন্টিজার অ্যারে ইনপুট দিতে হবে, তারপর অ্যারের টাইপ ডিসপ্লে করবে।
উদাহরণ ১ − Input: 5 3 1, Output: odd array
উদাহরণ ২ − Input: 2 4 6 8, Output: even array
উদাহরণ ৩ − Input: 1 2 3 4 5, Output: mixed array
অ্যালগরিদম
পয়েন্টার ব্যবহার করে ইউজার-ইনপুট অ্যারে টাইপ খুঁজে বের করার অ্যালগরিদম:
Step 1: রানটাইমে অ্যারের সাইজ পড়ুন।
Step 2: অ্যারে এলিমেন্ট ইনপুট নিন।
Step 3: পয়েন্টার ভেরিয়েবল ডিক্লেয়ার করুন।
Step 3: পয়েন্টার ভেরিয়েবল ব্যবহার করে চেক করুন সব এলিমেন্ট অড্ড কিনা। হলে "Odd" প্রিন্ট করুন।
Step 4: পয়েন্টার ভেরিয়েবল ব্যবহার করে চেক করুন সব এলিমেন্ট ইভেন কিনা। হলে "Even" প্রিন্ট করুন।
Step 5: অন্যথায় "Mixed" প্রিন্ট করুন।
উদাহরণ
পয়েন্টার ব্যবহার করে ইউজার-ইনপুট অ্যারে টাইপ খুঁজে বের করার সি প্রোগ্রাম:
#include<stdio.h> #include<stdlib.h> int*createArray (int); void readArray(int,int *); int findType(int , int *); int main(){ int *a,n,c=0,d=0; printf("Enter the size of array\n"); scanf("%d",&n); printf("Enter the elements of array\n"); createArray(n); readArray(n,a); findType(n,a); return 0; } int *createArray(int n){ int *a; a=(int*)malloc(n*sizeof(int)); return a; } void readArray(int n,int *a){ for(int i=0;i<n;i++){ scanf("%d",a+i); }} int findType(int n, int *a){ int c=0,d=0; for(int i=0;i<n;i++){ if(a[i]%2==0){ c++; } else{ d++; }} if(c==n){ printf("The array type is Even\n"); } if(d==n){ printf("The array type is Odd\n"); } if(c!=n && d!=n){ printf("The array type is Mixed\n"); } return 0; }
আউটপুট
Enter the size of array 4 Enter the elements of array 12 14 16 18 The array type is Even