Çö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:
Çözüm
a/b'den bir değişkeni float değere cast edip istediğin sonucu alabilirsin.

Screenshot_2.png
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.

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 CAS'e kullanmanız daha iyi olur.

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.
 

Technopat Haberler

Yeni konular

Geri
Yukarı