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ğaW
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.
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme