C ile Algoritma Yazamamak

gargantua

Hectopat
Katılım
9 Mayıs 2019
Mesajlar
86
Merhaba arkadaşlar. Ben, bireysel çaba ile C öğrenmeye çalışan birisiyim. Bunu yaparken bir kitabı referans alıp onu takip ediyorum. Sağlam bir temel atmak için de yavaş yavaş, sindire sindire konuları okuyorum.
3. bölüm sonu itibariyle karşıma bazı bölüm sonu soruları çıktı ve ben sizinle paylaştığım soruyu bir türlü çözemiyorum.
Soru şu: Kullanıcıdan harcadığı benzin miktarı ve gittiği kilometre miktarı alınacak, ortalama hesaplanıp while döngüsü içinde tekrar başa dönülecek. Eğer kullanıcı, nöbetçi değeri girerse döngüden çıkılacak ve toplam kilometre, toplam benzine bölünerek toplam ortalama hesaplanacak.
Belki 50 sefer farklı şekillerle bu soruyu çözecek algoritma yazmışımdır. Son olarak, sıfıra bölme gibi bir durum oluşmasın diye nöbetçi değeri "0" olarak atadım ama yine olmadı.
Böyle bir durumla karşı karşıyayım. Benimle fikirlerinizi paylaşırsanız, nerede hata yaptığıma dair görüş belirtirseniz müteşekkir olurum.
Yazdığım kod ile ilgili bir görsel, soru ve çıktısı ile ilgili bir görsel paylaşıyorum.
Kodun çalışma kısmı ile ilgili bir video paylaşıyorum.
Saygılar.
algoritma dosyası.png
soruyu içeren metin.png

video linki
 
Son düzenleyen: Moderatör:
Çözüm
12,8 yerine 12.8 girmeyi deneyin. Başka hata var mı bilmem ama float bir sayıyı virgüllü girmeniz kesinlikle bir hata. while koşulunu da galon != -1 yapın da bölüm sonu sorusunda istendiği gibi olsun. Doğru girişi siz yapın. Yanlış giriş kontrolü yapmanıza gerek olmadığını düşünüyorum. Çünkü sizden istenen algoritmayı kurmanız. Ayrica ".dir" dan sonra \n koyunuz, bitişik olmasın. Tüm söylediklerim kodun genel olarak doğru çalıştığı ihtimali üzerine.
12,8 yerine 12.8 girmeyi deneyin. Başka hata var mı bilmem ama float bir sayıyı virgüllü girmeniz kesinlikle bir hata. while koşulunu da galon != -1 yapın da bölüm sonu sorusunda istendiği gibi olsun. Doğru girişi siz yapın. Yanlış giriş kontrolü yapmanıza gerek olmadığını düşünüyorum. Çünkü sizden istenen algoritmayı kurmanız. Ayrica ".dir" dan sonra \n koyunuz, bitişik olmasın. Tüm söylediklerim kodun genel olarak doğru çalıştığı ihtimali üzerine.
 
Çözüm
Gerçekten de, "12,8" yerine "12.8" girişi yapıldığında programda herhangi bir sorun çıkmıyor. Virgül yerine nokta kullanılması gerektiğini bilmiyordum.
Ayrıca, nöbetçi değer -1 yapıldı ve "dir." ifadesinden sonra \n yani "yeni satır" koyuldu. While içinde sayici +=1 yapıldı (sayici = sayici +1 ile eşdeğerdir).
Bunlar yapıldıktan sonra ortaya çıkan program, soruda istenen çıktıları birebir üreten bir programdır.
Teşekkürlerimi sunuyorum, iyi çalışmalar.
çözüm sonrası algoritma çıktıları.png

12,8 yerine 12.8 girmeyi deneyin. Başka hata var mı bilmem ama float bir sayıyı virgüllü girmeniz kesinlikle bir hata. while koşulunu da galon != -1 yapın da bölüm sonu sorusunda istendiği gibi olsun. Doğru girişi siz yapın. Yanlış giriş kontrolü yapmanıza gerek olmadığını düşünüyorum. Çünkü sizden istenen algoritmayı kurmanız. Ayrica ".dir" dan sonra \n koyunuz, bitişik olmasın. Tüm söylediklerim kodun genel olarak doğru çalıştığı ihtimali üzerine.
 
Uyarı! Bu konu 7 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı