समस्या
पॉइंटर्स का उपयोग करके एक सरणी में पूर्ण वर्ग तत्वों का योग खोजने के लिए एक प्रोग्राम लिखें।
इनपुट के रूप में सरणी में कई तत्वों को देखते हुए और सरणी में मौजूद उन तत्वों के सभी पूर्ण वर्ग का योग आउटपुट है।
समाधान
उदाहरण के लिए,
Input= 1, 2, 3, 4, 5, 9,10,11,16 The perfect squares are 1, 4, 9,16. Sum = 1 + 4 + 9 +16 = 30 Output: 30
एल्गोरिदम
पॉइंटर्स का उपयोग करके किसी सरणी में पूर्ण वर्ग तत्वों का योग ज्ञात करने के लिए नीचे दिए गए एल्गोरिथम का संदर्भ लें।
चरण 1 - रनटाइम पर सरणी में तत्वों की संख्या पढ़ें।
चरण 2 - तत्वों को इनपुट करें।
चरण 3 - योग =0
. घोषित करें और प्रारंभ करेंचरण 4 - एक सूचक चर घोषित करें।
चरण 5 - पॉइंटर वेरिएबल का उपयोग करके जांचें कि सरणी तत्व एक पूर्ण वर्ग है या नहीं
चरण 6 - अगर यह एक पूर्ण वर्ग है, तो योग =योग + संख्या की गणना करें
चरण 7 - वापसी राशि।
उदाहरण
पॉइंटर्स का उपयोग करके एक सरणी में पूर्ण वर्ग तत्वों का योग खोजने के लिए सी प्रोग्राम निम्नलिखित है -
#include<stdio.h> #include<stdlib.h> #include<math.h> int sumPositive(int n,int *a){ int i,sum=0,m; for(i=0;i<n;i++){ m=sqrt(*(a+i)); if(pow(m,2)==*(a+i)){ sum+=*(a+i); } } return sum; } int main(){ int i,*a,n; printf("Enter the size of array:\n"); scanf("%d",&n); a=(int*)malloc(n*sizeof(int)); printf("Enter the elements of array:\n"); for(i=0;i<n;i++){ scanf("%d",a+i); } printf("Sum of positive square elements is %d",sumPositive(n,a)); return 0; }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्न आउटपुट उत्पन्न करता है -
Enter the size of array: 10 Enter the elements of array: 1 2 3 4 5 6 7 8 9 10 Sum of positive square elements is 14