Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> HTML

In các phần tử có thể cộng thành tổng cho trước

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