кодесурса
«C

Упражнения на C: Найти подмассив с заданной суммой из заданного массива

script1adsense2code
script1adsense3code

Массив C: упражнение 47 с решением

Напишите программу на C, чтобы найти подмассив с заданной суммой из заданного массива.

Пример решения:

Код C:

#include <stdio.h>
void print(int arr1 [], int i, int j)
{
    printf("[%d..%d] -- { ", i, j);
    for (int k = i; k <= j; k++) 
	{
        printf("%d ", arr1[k]);
    }
    printf("}\n");
}
void PickSubarrayFromArray(int arr1[], int n, int sum)
{
    for (int i = 0; i < n; i++)
    {
        int sum_upto = 0;
        for (int j = i; j < n; j++)
        {
            sum_upto += arr1[j];
            if (sum_upto == sum) 
			{
                print(arr1, i, j);
            }
        }
    }
}
int main()
{
    int arr1[] = { 3, 4, -7, 1, 3, 3, 1, -4 };
    int sum = 7;
    int ctr = sizeof(arr1)/sizeof(arr1[0]);
	int i;
 //------------- print original array ------------------	
	printf("The given array is :  ");
	for(i = 0; i < ctr; i++)
	{
	printf("%d  ", arr1[i]);
    } 
    printf("\n");
//------------------------------------------------------  	
	
    PickSubarrayFromArray(arr1, ctr, sum);
    return 0;
}

Пример вывода:

 Данный массив: 3 4 -7 1 3 3 1 -4  
[0..1] - {3 4}
[0..5] - {3 4 -7 1 3 3}
[3..5] - {1 3 3}
[4..6] - {3 3 1}

Блок - схема:

«Блок-схема:

Редактор кода программирования C:

Улучшите этот пример решения и опубликуйте свой код через Disqus.

Previous: написать программу на C, чтобы найти наименьшее положительное число, отсутствующее в несортированном массиве.
Далее: Напишите программу на C, чтобы определить, встречается ли данное целое число x более чем в n / 2 раза в отсортированном массиве из n целых чисел.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code