Tại sao đoạn code tính điểm trung bình môn học không chạy được?

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{   int n,dem=0;
    double *diem,trungBinh=0;
    diem = new double[n];
    for(int i=0; i<n; i++){
        cin>>diem[i];
        while(cin>>n){
        dem++;
        }
    }
    for(int i=0; i<dem; i++){
        trungBinh+=diem[i];
    }
    trungBinh/=n;
    cout<<fixed<<setprecision(2)<<trungBinh;
}

Mình không biết C++ nhưng ngó qua thấy n của bạn dường như = 0 vậy thì mấy vòng for đâu có chạy?
Cái thứ 2 là bạn có thể format lại code được không. Code bạn khó nhìn quá :confounded:?

#include <iostream>
#include <iomanip>

using namespace std;

int main() {
  int n, dem = 0;
  double *diem, trungBinh = 0;
  diem = new double[n];

  for (int i = 0; i < n; i++) {
    cin >> diem[i];
    while (cin >> n) {
      dem++;
    }
  }

  for (int i = 0; i < dem; i++) {
    trungBinh += diem[i];
  }

  trungBinh/=n;
  cout << fixed << setprecision(2) << trungBinh;
}
2 Likes

Rốt cục biến n là để lưu cái gì vậy bạn? :slight_smile:

1 Like

n là cái gì hả bạn?

Bạn thử đọc đoạn này xem code có ổn không nhé.

Bạn thiếu cin n trước new double [n] nên mảng của bạn từ đầu độ dài đã là 0

n đấy mình khởi tạo mục đích là số điểm được nhập vào bạn.

Bài nó không cho phép nhập n bạn. Đây mảng động mà?
n đấy mình khởi tạo mục đích là số điểm được nhập vào bạn.

  1. Vậy tại sao bạn viết cin >> n; ? :smiley:
  2. Như vậy thì bạn phải viết một cái mảng tự co giãn :slight_smile:
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?