Print elements that can be added to form a given sum


Input number of elements user want to enters and than input the total value user want to calculate from the given list of elements.

Input : N=5
   Enter any 5 values : 3 1 6 5 7
   Enter sum you want to check : 10
Output : 3 1 6

Algorithm

START
STEP1-> Take values from the user
STEP2-> Take the sum a user want to check in the set.
STEP3-> For i = 0; i < n; i++
STEP4-> Check If sum - *(ptr+i) >= 0 then,
   STEP4.1-> sum -= *(ptr+i);
   STEP4.2-> Print the value of *(ptr+i)
END If
END For
STOP

Example

#include <stdio.h>
int main(int argc, char const *argv[]){
   int *ptr, n, i, sum;
   printf("Enter number of digits you want to enter
");    scanf("%d", &n);    ptr = (int*)malloc(sizeof(int)*n); //Dynamically allocating the memory of int    type    printf("Enter %d elements
", n);    for(i = 0; i < n; i++) {       scanf("%d", (ptr+i)); //Inputting the value in dynamically       //allocated array    }    printf("Enter the sum you want to check
");    scanf("%d", &sum);    for ( i = 0; i < n; i++) {       if(sum - *(ptr+i) >= 0) { //Checking the values which can be added to form the sum          X          sum -= *(ptr+i); //Updating the value of sum          printf("%d ", *(ptr+i)); //Printing the Values which can be summed up to form sum       }    }    return 0; }

Output

If we run the above program then it will generate the following output

Enter number of digits you want to enter
5
Enter 5 elements
3
1
6
5
7
Enter the sum you want to check
10
3 1 6

Updated on: 30-Jul-2019

154 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements