Vướng mắc về chương trình cơ bản chạy loop và array

Nhập một số nguyên dương n từ bàn phím
Dòng tiếp theo nhập n số nguyên dương khác (n1,n2,n3,…)
Yêu cầu chương trình trả về tổng của n1,n2,n3,… yêu cầu dùng hàm loop.
Chào các bác ạ, bài này em đã kèm thêm hàm array vào để xử lí chỗ nhập n số nguyên dương nhưng khi chạy chương trình lại không ra kết quả đúng, ví dụ nhập n=4 và dòng dưới nhập lần lượt 2 4 3 8 thì kết quả đúng phải là 17 nhưng em lại thu được kết quả là 5 ạ, em nghĩ từ hàm for đổ xuống em đã tư duy sai ở đâu đó, mong mn chỉ cho em ạ. Em cảm ơn!

int main()
{
    int n, i;
    cin >> n;
    int arr[n];
    for ( i=1; i<=n;i++) {
        cin >> arr[n];
        n+=i;
        cout << n << endl;
        return 0;
    }
    
}

Vòng for của bạn chạy vòng đầu tiên sẽ là:
Giá trị của i và n lúc đầu đang là: n = 4, i = 1. Nhập giá trị cho a[4]: cin >> arr[n];, tăng n thêm 1 lượng bằng i: n = 4 + 1 = 5 n +=i;. In n ra màn hình (n = 5) cout << n << endl;. Kết thúc hàm main(): return 0;.

Có 2 cánh làm là:

  1. Dùng mảng để lưu các phần tử n1, n2, n3,… sau đó tính tổng các phần tử trong mảng. Nếu làm như này ta sẽ có 1 mảng để làm các thao tác như search, sort,…
    #define MAX 100
    int main() {
        int n, a[MAX];
        cin >> n;
        int sum = 0;    // khai bao bien sum de tinh tong
        for (int i = 0; i < n; i++){
            cin >> a[i];
            sum += a[i];
        }
        cout << sum << endl;
        return 0;
    }
  1. Nhập tới đâu tính tổng tới đó:
    int main() {
        int n, i;
        cin >> n;
        int sum = 0;
        while (n--){
            cin >> i;
            sum += i;
        }
        cout << sum << endl;
        return 0;
    }
6 Likes

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?