সমস্যা
গতিশীল মেমরি বরাদ্দকরণ ফাংশন ব্যবহার করে উপাদানগুলির একটি সেটে জোড় সংখ্যা এবং বিজোড় সংখ্যার যোগফল গণনা করতে।
সমাধান
এই প্রোগ্রামে, আমরা সংখ্যার সেটে জোড় এবং বিজোড় সংখ্যা খুঁজে বের করার চেষ্টা করছি।
একটি সেট উপাদানে জোড় সংখ্যা খুঁজে বের করার জন্য যে যুক্তি ব্যবহার করা হয় তা নিচে দেওয়া হল −
for(i=0;i<n;i++){ if(*(p+i)%2==0) {//checking whether no is even or not even=even+*(p+i); //calculating sum of even all even numbers in a list } }
একটি সেট উপাদানে বিজোড় সংখ্যা খুঁজে বের করতে ব্যবহৃত যুক্তি নিচে দেওয়া হল −
for(i=0;i<n;i++){ if(*(p+i)%2==0) {//checking number is even or odd even=even+*(p+i); } Else {//if number s odd enter into block odd=odd+*(p+i); //calculating sum of all odd numbers in a list } }
উদাহরণ
#include<stdio.h> #include<stdlib.h> void main(){ //Declaring variables, pointers// int i,n; int *p; int even=0,odd=0; //Declaring base address p using malloc// p=(int *)malloc(n*sizeof(int)); //Reading number of elements// printf("Enter the number of elements : "); scanf("%d",&n); /*Printing O/p - We have to use if statement because we have to check if memory has been successfully allocated/reserved or not*/ if (p==NULL){ printf("Memory not available"); exit(0); } //Storing elements into location using for loop// printf("The elements are : \n"); for(i=0;i<n;i++){ scanf("%d",p+i); } for(i=0;i<n;i++){ if(*(p+i)%2==0){ even=even+*(p+i); } else{ odd=odd+*(p+i); } } printf("The sum of even numbers is : %d\n",even); printf("The sum of odd numbers is : %d\n",odd); }
আউটপুট
Enter the number of elements : 5 The elements are : 34 23 12 11 45 The sum of even numbers is : 46 The sum of odd numbers is : 79