Nhập số lượng phần tử người dùng muốn nhập và sau đó nhập tổng giá trị muốn tính toán từ danh sách các phần tử cho trước.
Input : N=5 Nhập 5 giá trị bất kỳ : 3 1 6 5 7 Nhập tổng muốn kiểm tra : 10 Output : 3 1 6
Thuật toán
BẮT ĐẦU BƯỚC1-> Lấy giá trị từ người dùng BƯỚC2-> Lấy tổng người dùng muốn kiểm tra trong tập hợp. BƯỚC3-> Với i = 0; i < n; i++ BƯỚC4-> Kiểm tra Nếu sum - *(ptr+i) >= 0 thì, BƯỚC4.1-> sum -= *(ptr+i); BƯỚC4.2-> In giá trị của *(ptr+i) KẾT THÚC Nếu KẾT THÚC Vòng lặp DỪNG
Ví dụ
#include <stdio.h> #include <stdlib.h> int main(int argc, char const *argv[]){ int *ptr, n, i, sum; printf("Nhập số chữ số bạn muốn nhập\n"); scanf("%d", &n); ptr = (int*)malloc(sizeof(int)*n); //Cấp phát động bộ nhớ kiểu int printf("Nhập %d phần tử\n", n); for(i = 0; i < n; i++) { scanf("%d", (ptr+i)); //Nhập giá trị vào mảng cấp phát động } printf("Nhập tổng bạn muốn kiểm tra\n"); scanf("%d", &sum); for ( i = 0; i < n; i++) { if(sum - *(ptr+i) >= 0) { //Kiểm tra giá trị có thể cộng thành tổng sum -= *(ptr+i); //Cập nhật giá trị tổng printf("%d ", *(ptr+i)); //In các giá trị có thể cộng thành tổng } } return 0; }
Kết quả
Nếu chạy chương trình trên sẽ tạo ra kết quả sau:
Nhập số chữ số bạn muốn nhập 5 Nhập 5 phần tử 3 1 6 5 7 Nhập tổng bạn muốn kiểm tra 10 3 1 6