সমস্যা
ডাইনামিক মেমোরি অ্যালোকেশন ফাংশন ব্যবহার করে একটি সেট এলিমেন্টে জোড় ও বিজোড় সংখ্যার সমষ্টি বের করা।
সমাধান
এই প্রোগ্রামে, আমরা একটি সেট সংখ্যায় জোড় ও বিজোড় সংখ্যা খুঁজে বের করার চেষ্টা করছি।
এক সেট এলিমেন্টে জোড় সংখ্যা বের করার লজিক নিচে দেওয়া হলো −
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