اكتب برنامج C للتحقق مما إذا كان من الممكن تقسيم مصفوفة إلى موضع بحيث يكون مجموع الجانب الأيسر من الفاصل مساويًا لمجموع الجانب الأيمن

  • برمجة
  • برمجة سي c

اكتب برنامج C للتحقق مما إذا كان من الممكن تقسيم مصفوفة إلى موضع بحيث يكون مجموع الجانب الأيسر من الفاصل مساويًا لمجموع الجانب الأيمن

الخرج المتوقع :

The given array is :  1  3  3  8  4  3  2  3  3  
The array can be split in a position where the sum of both side are equal.

الأجوبة

/*Write a program in C to check if an array can be splitted in such a position that, the sum of left side of the splitting is equal to the sum of the right side*/

#include<stdio.h> 
# include <stdbool.h>

bool canBalance(int arr1[],int n) 
{
  int l=n;
  for(int i = 0; i < l; i++) 
  {
      int rhs = 0, lhs = 0;
      for(int k = 0; k < l; k++)
      {
          if(k > i)
          {
              lhs += arr1[k];
              }
              else 
              {
                  rhs += arr1[k];
                }
        }
                  
    if(rhs == lhs) 
	{
      return true;
    }
  }
  return false;
}

int main()
{
     int arr1[] ={1, 3, 3, 8, 4, 3, 2, 3, 3};
     int arr_size = sizeof(arr1)/sizeof(arr1[0]);
     int i;
     bool bl;
 //------------- print original array ------------------	
	printf("The given array is :  ");
	for(i = 0; i < arr_size; i++)
	{
	printf("%d  ", arr1[i]);
    } 
	printf("\n");
//------------------------------------------------------ 
        bl=canBalance(arr1, arr_size);
        if (bl==true)
            printf("The array can be split in a position where the sum of both side are equal. ");        
     else
         printf("The array can not be split at any position where the sum of both side are equal. ");
 
   return 0;
}
هل كان المحتوى مفيد؟

تبحث عن مدرس اونلاين؟

محتاج مساعدة باختيار المدرس الافضل؟ تواصل مع فريقنا الان لمساعدتك بتأمين افضل مدرس
ماهو التخصص الذي تبحث عنه؟
اكتب هنا...