Computer >> Máy Tính >  >> Lập trình >> lập trình C

Tìm kiếm các số chẵn và lẻ trong một tập hợp các phần tử bằng cách sử dụng ngôn ngữ C một cách linh động

Vấn đề

Để tính tổng các số chẵn và số lẻ trong một tập hợp các phần tử bằng cách sử dụng các hàm cấp phát bộ nhớ động.

Giải pháp

Trong chương trình này, chúng tôi đang cố gắng tìm các số chẵn và lẻ trong một tập hợp các số.

Logic được sử dụng để tìm các số chẵn trong một tập hợp phần tử được đưa ra bên dưới -

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
   }
}

Logic được sử dụng để tìm các số lẻ trong một tập hợp phần tử được đưa ra bên dưới -

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
   }
}

Ví dụ

#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);
}

Đầu ra

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