اكتب برنامج C للتحقق مما إذا كان من الممكن تقسيم مصفوفة إلى موضع بحيث يكون مجموع الجانب الأيسر من الفاصل مساويًا لمجموع الجانب الأيمن
- برمجة
- برمجة سي c
- 2021-05-05
- Wassim
الأجوبة
/*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;
}
أسئلة مشابهة
القوائم الدراسية التي ينتمي لها السؤال