#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;
}
Tại sao đoạn code tính điểm trung bình môn học không chạy được?
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á
?
#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? 
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.
- Vậy tại sao bạn viết
cin >> n;?
- Như vậy thì bạn phải viết một cái mảng tự co giãn
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?