Şimdi Ara

Hesap makinesi yapma kodundaki hatam nerede ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
5
Cevap
1
Favori
694
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • merhaba sayın dh kullanıcıları şöyle bir kod yazdım hata vermeden çalışıyor fakat kod daha ben işlem türünü seçmeden programı bitiriyor nerede hata yaptım ?#include
    int main(void){
    float ilk ;
    float iki ;
    float sonuc ;
    char islem ;
    printf("ilk işlemi giriniz");
    scanf("%f",&ilk);
    printf("işlem türünü giriniz");
    scanf("%c",&islem);
    if(islem == '+'){
    printf("ikinci sayıyı giriniz");
    scanf("%f",&iki);
    sonuc = ilk + iki ;
    }
    else if(islem == '+'){
    printf("ikinci sayıyı giriniz");
    scanf("%f",&iki);
    sonuc = ilk + iki ;
    }
    else if(islem == '-'){
    printf("ikinci sayıyı giriniz");
    scanf("%f",&iki);
    sonuc = ilk - iki ;
    }
    else if(islem == '*'){
    printf("ikinci sayıyı giriniz");
    scanf("%f",&iki);
    sonuc = ilk * iki ;
    }
    else if(islem == '/'){
    printf("ikinci sayıyı giriniz");
    scanf("%f",&iki);
    sonuc = ilk / iki ;
    }
    }







  • scanf("%c", &islem) fonksiyonunda ilk argümanı" %c" yapmalısın. Kaynak:




  • Çok teşekkür ederim kod çalıştı fakat neden boşluk koymamız gerektiğini anlamadım .
  • waytçaklıtmoğa W kullanıcısına yanıt
    Gönderdiğim kaynaktaki açıklamada sebebi yazıyor. Orada açıkladığı kadarıyla, üst üste 2 scanf yazınca ilk scanf 'ın eklediği newline karakteri alttaki scanf 'nin aldığı char 'ı etkiliyor; boşluk koyunca etkilemiyor. Yani char 'lı scanf'i hiç değiştirmeden üste alsan bu sorun olmaz.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.