float mean(int a[],int p){
    int sum=0;
    double ans;
    for(int i=0; i<p; ++i){
        sum=sum+a[i];
    }
    ans=sum/p;
    cout<<setprecision(1)<<ans<<endl;
}

Masukan: 4897 54012 32015 4684 2122 44848 99999 54651 16161 76482 keluaran yang diharapkan: 38987.1 keluaran saya: 38987.0

1
Sanket Mhatre 18 Maret 2020, 08:06

1 menjawab

Jawaban Terbaik

Saat membagi int dengan int, Anda mendapatkan int. Saat Anda mengatur ketepatan jawaban Anda, Anda sedang mengatur ketepatan angka yang telah dipotong.

Misalnya, ketika Anda memiliki:

int a = 5;
int b = 2;
double ans = a / b; //(5/2 = 2)

//ans = 2.0

Anda bekerja dengan pembagian bilangan bulat.

a / b

Adalah 5 / 2, yang menghasilkan 2 karena pembagian bilangan bulat, bukan 2,5.

Meskipun Anda menyetelnya sama dengan dobel, Anda tetap mendapatkan 2.0, karena Anda menyetel ans ke hasil 5 / 2, yaitu 2. Int 2 kemudian diubah menjadi dobel: 2.0. Untuk mendapatkan jawaban dengan perkiraan desimal yang benar, buat salah satu int menjadi double (saya sarankan mengubah int p menjadi double p).

1
Allen Naliath 18 Maret 2020, 05:19