Şimdi Ara

C: If döngüsü çalışmıyor

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
9
Cevap
0
Favori
647
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar c de yeniyim ama yazığım basit vücut kitle endeksi kodu if döngüsüne girmeden sınuç üretiyor acaba hatam nedir?
    #include<stdio.h>

    float boy;
    int kilo;
    float indeks;
    int main ()

    {
    printf("Boyunuzu Giriniz(m cinsinden): \n");
    scanf("%f",&boy);
    printf("Kilonuzu Giriniz(kg cinsinden):\n");
    scanf("%d",&kilo);
    indeks = kilo/(boy*boy);

    if (indeks <= 18.5)
    {printf("zayif\n");
    if(indeks > 18.5 & indeks <= 24.9)
    {
    printf("Normal\n");
    }
    if (indeks >= 25 & indeks <= 29.99)
    {
    printf("Kilolu\n");
    }
    if (indeks >= 30.00 & indeks<=34.99)
    {
    printf("1. Derece Obez\n");
    }
    if (indeks >= 35.00 & indeks <=39.99)
    {
    printf("2.Derece Obez\n");

    }
    if (indeks >= 40.00)
    {
    printf("3. Derece Obez\n");
    }
    }

    printf("Vucut Kitle Indeksiniz %f kg/m dir",indeks);

    return 0;
    }
    Girdiğim örnek değerler
    Boy : 1.90
    Kilo : 95
    Sonuç resimde.
    Teşekkürler
     C: If döngüsü çalışmıyor

    < Bu ileti tablet sürüm kullanılarak atıldı >







  • Birinci if içine diğer tüm if'leri yazmışsınız. Alttaki süslü parantezi silip birinci if'in kapanışı olarak yukarı yazınız. Koşullarda (ve) anlamında iki tane (&&) işareti koymalısınız.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: hyrgul

    Birinci if içine diğer tüm if'leri yazmışsınız. Alttaki süslü parantezi silip birinci if'in kapanışı olarak yukarı yazınız. Koşullarda (ve) anlamında iki tane (&&) işareti koymalısınız.

    Çok teşekkürler sorunum çözüldü.

    < Bu ileti tablet sürüm kullanılarak atıldı >
  • Bu arada if döngü değil karar yapısıdır. Fikir vermesi açısından aşağıdaki gibi deneyebilirsiniz.

     
    #include<stdio.h>
    #include<stdio.h>

    int main ()
    {
    float boy;
    int kilo;
    float indeks;

    printf("Boyunuzu Giriniz(m cinsinden): \n");
    scanf("%f",&boy);
    printf("Kilonuzu Giriniz(kg cinsinden):\n");
    scanf("%d",&kilo);
    indeks = kilo/(boy*boy);

    if (indeks <= 18.5)
    {
    printf("zayif\n");
    }
    else if(indeks < 25)
    {
    printf("Normal\n");
    }
    else if (indeks < 30)
    {
    printf("Kilolu\n");
    }
    else if (indeks < 35)
    {
    printf("1. Derece Obez\n");
    }
    else if (indeks < 40)
    {
    printf("2.Derece Obez\n");

    }
    else
    {
    printf("3. Derece Obez\n");
    }

    printf("Vucut Kitle Indeksiniz %f kg/m dir",indeks);

    return 0;
    }


    Not: Yazım hatası olabilir. Deneyemedim.




  • quote:

    Orijinalden alıntı: hyrgul

    Bu arada if döngü değil karar yapısıdır. Fikir vermesi açısından aşağıdaki gibi deneyebilirsiniz.

     
    #include<stdio.h>
    #include<stdio.h>

    int main ()
    {
    float boy;
    int kilo;
    float indeks;

    printf("Boyunuzu Giriniz(m cinsinden): \n");
    scanf("%f",&boy);
    printf("Kilonuzu Giriniz(kg cinsinden):\n");
    scanf("%d",&kilo);
    indeks = kilo/(boy*boy);

    if (indeks <= 18.5)
    {
    printf("zayif\n");
    }
    else if(indeks < 25)
    {
    printf("Normal\n");
    }
    else if (indeks < 30)
    {
    printf("Kilolu\n");
    }
    else if (indeks < 35)
    {
    printf("1. Derece Obez\n");
    }
    else if (indeks < 40)
    {
    printf("2.Derece Obez\n");

    }
    else
    {
    printf("3. Derece Obez\n");
    }

    printf("Vucut Kitle Indeksiniz %f kg/m dir",indeks);

    return 0;
    }


    Not: Yazım hatası olabilir. Deneyemedim.

    Haklısınız, ben yanlış bir ifade kullandım. Else if hiç aklıma gelmedi bu daha kolay olurdu benim için sanırım. Teşekkürler cevap için.

    < Bu ileti tablet sürüm kullanılarak atıldı >




  • bu da ek bilgi olsun:

    tek "&" bir bitwise operator'dır. mesela

    01100101 & 11001001 ifadesinin sonucu:

    01000001 olur. yani sadece iki bit de 1 ise 1, diğer türlü 0. elektronikteki AND gate ile aynı.

    diğer bitwise operator'lar |(or) ^(xor) ~(not)

    bir de shift operator'lar var: << ve >>



    dileyen araştırabilir detaylıca

    < Bu ileti mini sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: CalmDad


    quote:

    Orijinalden alıntı: hyrgul

    Birinci if içine diğer tüm if'leri yazmışsınız. Alttaki süslü parantezi silip birinci if'in kapanışı olarak yukarı yazınız. Koşullarda (ve) anlamında iki tane (&&) işareti koymalısınız.

    Çok teşekkürler sorunum çözüldü.

    böyle birşey için if kullanma. switch/case kullan. malesef bilg. müh. bitirmiş ve senelerdir çalışan insanların kodlarında bu yapıya hala rastlıyorum ve görünce saydırıyorum. hataya çok açık, yavaş çalışır ve okunaksızdır (hataya açık olmasının sebebi de bu zaten).
  • beyinsis B kullanıcısına yanıt
    Çok teşekkürler bu bilgiyi göz önünde bulunduracağım

    < Bu ileti tablet sürüm kullanılarak atıldı >
  • beyinsis B kullanıcısına yanıt
    Aynı soruyu switch-case ile yazıp gönderir misiniz? Biz de bir görelim bakalım.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.