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

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,907 questions

51,839 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
...