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