Nhập số phần tử mà người dùng muốn nhập và nhập tổng giá trị mà người dùng muốn tính toán từ danh sách các phần tử đã cho.
Input : N=5 Enter any 5 values : 3 1 6 5 7 Enter sum you want to check : 10 Output : 3 1 6
Thuật toán
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
Ví dụ
#include <stdio.h> int main(int argc, char const *argv[]){ int *ptr, n, i, sum; printf("Enter number of digits you want to enter\n"); scanf("%d", &n); ptr = (int*)malloc(sizeof(int)*n); //Dynamically allocating the memory of int type printf("Enter %d elements\n", 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\n"); 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; }
Đầu ra
Nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra kết quả sau
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