Çözüldü C kesirli sonuç alınmıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

__Canyusuf__

Hectopat
Katılım
31 Ocak 2018
Mesajlar
30
Daha fazla  
Cinsiyet
Erkek
C:
#include <stdio.h>
main()
{
    int a,b,x;
    int sonuc1;
    float sonuc2;
    printf("birinci sayiyi giriniz:    ");
    scanf("%d",&a);
    printf("ikinci sayiyi giriniz:    ");
    scanf("%d",&b);
    printf("islem seciniz:    ");
    scanf("%d",&x);
    if(x==1)
    {
        sonuc1=a+b;
        printf("sonuc = %d",sonuc1);
             
    }
        else if (x==2)
        {
            sonuc1 = a-b;
            printf("sonuc = %d",sonuc1);
         
        }
            else if (x==3)
            {
                sonuc1=a*b;
                printf("sonuc = %d",sonuc1);
             
            }
                else if (x==4)
                {
                     sonuc2 = a/b;
                    printf("sonuc = %f",sonuc2);
                     
                }
                    else
                    {
                        printf("yanlis sayi girdiniz tekrar deneyiniz");
                     
                        } 
 
 
 
 
 
 
 
 
 
    return 0;
}

a'yı 3 b'yi 4 alınca 3/4 vermesi gerekirken 0 veriyor, bunu nasıl çözebilirim?
 
Son düzenleyen: Moderatör:
Float tanımlamışan 0.75 gösterecektir. Math kütüphanesini ekleyip lf olarak tanımlar mısın?
 
C:
#include <stdio.h>
int main()
{
    int a,b,x;
    printf("birinci sayiyi giriniz: ");
    scanf("%d",&a);
    printf("ikinci sayiyi giriniz: ");
    scanf("%d",&b);
    printf("islem seciniz: ");
    scanf("%d",&x);
    switch (x) {
        case 1:
            printf("sonuc = %d",a+b);
            break;
        case 2:
            printf("sonuc = %d",a-b);
            break;
        case 3:
            printf("sonuc = %d", a*b);
            break;
        case 4:
            printf("sonuc = %f", (float)a/b);
            break;
        default:
            printf("yanlis sayi girdiniz tekrar deneyiniz");
            break;
    }
    return 0;
}
Type casting kullanarak float olduğunu belirtmelisiniz. Bu arada switch case kullanmanız daha iyi olur.
 
A/b'den bir değişkeni float değere cast edip istediğin sonucu alabilirsin.

Eki Görüntüle 1628811

Teşekkür ederim.


Evet Switch daha mantıklı fakat if yapısını oturtmak için örnek yapıyordum tavsiyeniz için teşekkür ederim.
 
Son düzenleyen: Moderatör:
0 geliyor çünkü C dilinde tam sayının tam sayıya bölümü tam sayı sonucunu verir, atandığı değişkenin türü önemli değil.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…