Şimdi Ara

Neden sonsuz döngü oldu ??

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
6
Cevap
0
Favori
288
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • #include<stdio.h>
    #include<locale.h>
    int main(void)
    {
    setlocale(LC_ALL,"Turkish");

    unsigned int counter;
    unsigned int toplamlitre;
    unsigned int toplamkm;
    float km;
    float litre;
    float genelortalama;
    float depo;
    counter=0;
    toplamlitre=0;
    toplamkm=0;

    printf("Lütfen litrenizi giriniz (-1 yazın):");
    scanf("%.f",&litre);

    printf("Lütfen km giriniz:");
    scanf("%.f",&km);

    while( counter != -1 )
    {
    toplamlitre += litre;
    toplamkm += km;
    depo = litre/km;
    printf("Bu depo için Lt/km:%.f\n",depo);
    ++counter;
    printf("Lütfen litre giriniz ve km giriniz (bitirmek isiyorsanız -1):");
    scanf("%.f%.f",&litre,&km);

    }
    genelortalama=toplamlitre/toplamkm;
    printf("Genel ortalama:%.f",genelortalama);























    }







  • while( counter != -1 )

    while( litre != -1 ) şeklinde olacak.
  • //Araba depo alınan yol hesaplama programı//
    #include<stdio.h>
    #include<locale.h>
    int main(void)
    {
    setlocale(LC_ALL,"Turkish");
    unsigned int a;
    int km , litre;
    int toplamlitre , toplamkm;
    float depo_ortalaması;
    float genelortalama;

    a=0;
    toplamlitre=0;
    toplamkm=0;

    printf("%s","Litre ve km giriniz(sonlandrmak için -1):");
    scanf("%d%d", &litre, &km);

    while(litre & km != -1)
    {
    depo_ortalaması=(float) litre/km;
    printf("Bu depo için %d\n",depoortalaması);

    toplamlitre+=litre;
    toplamkm+=km;

    ++litre & km;

    printf("Lütfen litre ve km(sonlandırmak için -1)");
    scanf("%d%d", &litre ,&km);
    }
    if( litre & km !=0 )
    {
    genelortalama=(float)toplamlitre/toplamkm;
    printf("Genel ortalama %.2f\n",genelortalama);
    }
    else
    {
    puts("Hiçbir bilgi girmediniz");
    }














    } hocam sızın yorumu gormeden once soyle bırsey yaptım ama gene olmadı float ıle tanımladıgım depoportalama ve dıgerını kabul etmıyor anlamadım




  • patlasakmı P kullanıcısına yanıt
    quote:

    while(litre & km != -1)
    {
    depo_ortalaması=(float) litre/km;
    printf("Bu depo için %d",depoortalaması);


    Derleyicinin verdiği hataları anlamaya çalışırsan görebilirsin aslında.

    Bu arada iki integer üzerinde bölme işlemi yapıp, sonucu float değişkenine atmanın bir manası yok. Integer bölmenin sonucu her zaman integerdır. 7/3 = 2 verir mesela. Eğer ondalık bir sayı versin istiyorsan değişkenlerin ikisini de float olarak cast etmen gerekiyor.

    int a=7, b=3;
    float c = (float)a / (float)b



    < Bu mesaj bu kişi tarafından değiştirildi gdb -- 21 Ekim 2017; 22:20:51 >
  • anladım tesekkurler hocam ama sanırım bu konu bende tam oturmadı anladım zannedıyorum ama gerı donup tekrar okusam degısen bırsey olmıcak sanırım anlamıyorum neden hata yapıyorum derleyıcının hatalarını anlıyorum ama mantık hatası ıse eger suan daha yenı oldugum ıcın bu ıste onuda anlayamıyorum cok fazla altarnetif olusturamıyorum kafamda sanırım cok zekı degılım :))
  • patlasakmı P kullanıcısına yanıt
    Zekayla pek alakası yok. İşin sırrı pratik :) Hiçbir zaman okuyup anladığını sandığın şeyi tam olarak pratiğe dökemezsin. Önce iyice bir uğraşıp, hatalar yapıp tecrübe edinmek gerekiyor. Bu her zaman her konuda böyle.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.