समस्या
सरणी प्रकार को खोजने के लिए एक सी प्रोग्राम लिखें, जिसे हमें जांचने की आवश्यकता है, क्या किसी सरणी में दिए गए तत्व सम संख्या या विषम संख्या हैं या पॉइंटर्स का उपयोग करके दोनों का संयोजन है।
समाधान
उपयोगकर्ता को पूर्णांकों की एक सरणी दर्ज करनी होती है, फिर, सरणी के प्रकार को प्रदर्शित करना होता है।
उदाहरण 1 - इनपुट:5 3 1, आउटपुट:विषम सरणी
उदाहरण 2 - इनपुट:2 4 6 8, आउटपुट:सम सरणी
उदाहरण 3 - इनपुट:1 2 3 4 5, आउटपुट:मिश्रित सरणी
एल्गोरिदम
पॉइंटर्स की मदद से उपयोगकर्ता द्वारा दर्ज किए गए सरणी प्रकार को खोजने के लिए नीचे दिए गए एल्गोरिदम को देखें।
चरण 1:रनटाइम पर सरणी का आकार पढ़ें।
चरण 2:सरणी तत्वों को इनपुट करें।
चरण 3:सूचक चर घोषित करें।
चरण 3:जाँच करें कि क्या सरणी के सभी तत्व सूचक चर का उपयोग करके विषम हैं।
फिर, "Odd" प्रिंट करें।
चरण 4:जाँच करें कि क्या सरणी के सभी तत्व सूचक चर का उपयोग करके सम हैं।
फिर, "सम" प्रिंट करें।
चरण 5:अन्यथा, "मिश्रित" प्रिंट करें।
उदाहरण
पॉइंटर्स की मदद से उपयोगकर्ता द्वारा दर्ज किए गए सरणी प्रकार को खोजने के लिए सी प्रोग्राम निम्नलिखित है -
#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