Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.
0

Float tipindeki ortalamanın virgülden sonrasını yanlış hesaplıyor

#include<stdio.h>

int main() {
    int i, sayi, toplam = 0, sayac = 0;
    float ort;
    for (i = 1; i < 11; i++) {
        printf("Bir sayi giriniz");
        scanf("%d", & sayi);
        if (sayi % 2 == 0) continue;
        else if (sayi <= 0) {
            printf("yalnizca pozitif sayilar!\n");
            i--;
            continue;
        } else toplam += sayi;
        sayac++;
    }
    ort = toplam / sayac;
    printf("tek sayilarin ortlamasi: %.2f", ort);
    return 0;
}

Ortalama değişkenini float tipinde tanımlamama rağmen  virgülden sonrasını yanlış hesaplamıyor.

Bir sayi giriniz1
Bir sayi giriniz2
Bir sayi giriniz3
Bir sayi giriniz4
Bir sayi giriniz5
Bir sayi giriniz6
Bir sayi giriniz7
Bir sayi giriniz8
Bir sayi giriniz9
Bir sayi giriniz9
tek sayilarin ortlamasi: 5.00
--------------------------------
Process exited after 120.2 seconds with return value 0
Press any key to continue . . .

1 Cevap

0
Tamsayıyı tamsayıya (toplam'ı sayac'a) bölerseniz sonuç tamsayıdır. Bunu bir float'a atadığınızda tamsayıyı atamış olursunuz.


Cevaplayan: 14.09.20 22:41
cevapsitesi
102,035p 16ü
Cevabı seçen: 17.09.20 21:05
cevapsitesi   102,035p 16ü