Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Prodentim Probiotics Specially Designed For The Health Of Your Teeth And Gums

Instant Grammar Checker - Correct all grammar errors and enhance your writing

Teach Your Child To Read

Powerful WordPress hosting for WordPress professionals

Disclosure: My content contains affiliate links.

31,166 questions

40,722 answers

573 users

How to find the subarray whose sum is equal to a given number N in C

1 Answer

0 votes
#include <stdio.h>

void PrintSubarrayWithSumEqualToN(int arr[], int size, int N) {
    for (int i = 0; i < size; i++) {
        int current_sum = arr[i];

        if (current_sum == N) {
            printf("Sum found at index: %d", i);
            return;
        }
        else {
            for (int j = i + 1; j < size; j++) {
                current_sum += arr[j];

                if (current_sum == N) {
                    printf("Sum found between index %d and %d\n", i, j);
                    for (int k = i; k <= j; k++)
                        printf("%d ", arr[k]);
                    return;
                }
                else if (current_sum > N) break;
            }
        }
    }
    printf("No subarray found");
}


int main() {
    int arr[] = { 2, 5, 8, 9, 1, 7, 12, 21, 19 };
    int size = sizeof(arr) / sizeof(arr[0]);
    int N = 52;

    PrintSubarrayWithSumEqualToN(arr, size, N);
}




/*
run:

Sum found between index 6 and 8
12 21 19

*/

 





answered Sep 26, 2022 by avibootz
edited Sep 26, 2022 by avibootz
...