// PR Bab 10, soal 3 -- pembahasan. // // Tiga kesalahannya: // 1. Perulangan dimulai dari i = 1, sehingga a[0] tidak pernah // diperiksa. Untuk n = 1 tidak ada data yang diproses sama sekali. // 2. Pembagian dengan banyak tanpa memeriksa banyak == 0. Kalau tidak // ada bilangan positif, hasilnya nan atau inf. // 3. Penampung jumlah bertipe int. Untuk 100.000 data bernilai 10^9, // jumlahnya mencapai 10^14 dan meluap. #include #include using namespace std; const int MAKS = 100005; int a[MAKS]; int main() { int n; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; long long jumlah = 0; int banyak = 0; for (int i = 0; i < n; i++) { if (a[i] > 0) { jumlah += a[i]; banyak++; } } double rata = (banyak == 0) ? 0.0 : (double)jumlah / banyak; cout << fixed << setprecision(2) << rata << "\n"; return 0; }