C programlama dili soruları

serhatkaya00

Femtopat
Katılım
13 Aralık 2020
Mesajlar
7
Daha fazla  
Cinsiyet
Erkek
Yeni öğrenmeye başladım da. Burada nasıl bir hata yapmışım? Direkt "çok kilolusunuz"a eşitliyor. Yardımcı olursanız sevinirim.
 

Dosya Ekleri

  • Ekran Görüntüsü (5).png
    Ekran Görüntüsü (5).png
    34,1 KB · Görüntüleme: 326
Çarpma ve bölme öyle yapılmaz.
Kod öyle paylaşılmaz.


Kod olarak paylaşabilirsen daha iyi yardımcı olabiliriz.
Konu açmak yerine başka konunun altına yazdığı için uyarı aldı. Yazım hatalarıyla yeni konu açmış olsa tolerans gösterilebilirdi ama benim bu olaya toleransım yok.
 
Bugün kayıt olmuş, ilk mesajı. Bu yüzden tolerans gösterilebilirdi sanki.
Dediğim gibi. Konu açmayı bilmek için kahin olmaya gerek yok. Var olan konuların altına kendi sorunlarını yazmanın hiçbir anlamı yok.
O zaman tüm Technopat'ta tek konu olsun. Herkes sorusunu orada sorsun, cevabını orada bulsun. Ne gerek var konu açmaya? Mesaj yazdığı konuyu açan adam enayi mi?

Bu şekilde yaptım. Üzerine değişiklik yapabilirsin.
En büyük hatan indeks hesabı gibi duruyor. Bu arada endeks değil, indeks.
Hatan ise işlem önceliği, ya da ne dersen işte. Çarpma bölme eşit önceliğe sahiptir. Aralarında kimin önce olacağına varsa parantezler, yoksa soldan sağa gitmek karar verir. Senin yaptığın kilo/boy*boy işleminde sonuç hep kilo çıkıyor. Çünkü kiloyu boya bölüyor, sonra tekrar boy ile çarpıyor.
Gereksiz if/else kullanımların var. Durumları hesapladığından eminsen direkt else diyebilirsin.
Girintileri düzgün yamıyorsun. 47. satırdaki return 0 main'e ait gibi duruyor ama aslında if (yas >= 25)'e ait.
Bir scope açarsan açtığın yerin dik olarak altında bitmeli onun parantezi. Okunurluk açısından çok önemli.

Kod:
#include <stdio.h>

int main(){
    float boy = 0;
    float kilo = 0;
    float indeks = 0;
   
    int yas = 0;
   
    printf("Lutfen yasinizi giriniz: ");
    scanf("%d", &yas);
   
    if (yas > 25){
        printf("Lutfen kütlenizi kg cinsinden giriniz: ");
        scanf("%f", &kilo);
       
        printf("Lutfen boyunuzu metre cinsinden giriniz: ");
        scanf("%f", &boy);
       
        indeks = kilo / (boy * boy);
       
        if (indeks < 18){
            printf("Kilo almalisiniz.\n");
        }
        else if (indeks < 24){
            printf("Ideal kilodasiniz.\n");
        }
        else {
            printf("Asiri kilolusunuz.\n");
        }
    }
    else {
        printf("Hesaplama icin yasiniz kucuk.\n");
    }

    return 0;
}
 
#include <stdio.h>
#include <locale.h>




int main() {


setlocale(LC_ALL,"Turkish");


char isim;
int yas;
float kilo;
float boy;


printf("lütfen isim ve soy isminizi giriniz...");
scanf("%s",&isim);
printf("lütfen yasýnýzý giriniz");
scanf("%d",&yas);


if (yas >= 25){



float indeks=kilo/boy*boy;

printf("kilonuz?\n");
scanf("%f",&kilo);
printf("boyunuz\n");
scanf("%f",&boy);


if (indeks<18){
printf("kilo almalisiniz\n");
}
else if (indeks>=18 && indeks<24){
printf("ideal kilodasiniz\n");
}
else if (indeks >= 24){
printf("çok kilolusunuz\n");

}
printf("boy/kilo indeksiniz=%f",indeks=kilo/boy*boy);


}

else if (yas<25){
printf("bu hesaplama için küçüksünüz");
}
}



aga dediğin işlem hatasına baktım boy*boy'u parantez içine aldığımda işlem bozuluyo.şuan çalıştırdığımda işlem doğru ,indeksi doğru veriyor fakat bu son haliyle direk baştaki if(kilo almalısınız)'a eşitliyor.Ve haklısın diğer sorunun altına yazmakta hata ettim ama nerden soru ekliyeceğimi bilmiyordum.son olarak return komutunu sonda nereye nasıl verecğimi söyleyebilir misiniz,nasıl koysam hata veriyor.
Ekran Görüntüsü (8).png
 
C:
int main(){

// kod parçalarını buraya yazacaksın, ana yapı bu.
// Return programının bittiğini ifade ediyor burada.

return 0;

}

Türkçe karakterler kullanma, süslü parantezleri olabildiğince düzgün kullan. Kendi kafanı karıştırıyorsun gibi duruyor.
 
C:
int main(){

// kod parçalarını buraya yazacaksın, ana yapı bu.
// Return programının bittiğini ifade ediyor burada.

return 0;

}

Türkçe karakterler kullanma, süslü parantezleri olabildiğince düzgün kullan. Kendi kafanı karıştırıyorsun gibi duruyor.

Bir problem gördün mü kodda? Çözemedim vallahi. Öğrenmeye başlayalı 3 gün oldu devam edemiyorum. Çözersen çok mutlu olurum.
 
Bir problem gördün mü kodda? Çözemedim vallahi. Öğrenmeye başlayalı 3 gün oldu devam edemiyorum. Çözersen çok mutlu olurum.

"Sosyalde kod nasıl paylaşılır!" adlı konu yukarıda verilmiş, ona göre kodunu tekrar paylaş bakayım ben, müsait olunca yardımcı olayım. Yukarıdaki açıklamayı anlamadığını düşünerek yorum yapıyorum, elinden geldiğince açıklamış arkadaş.
 

Technopat Haberler

Geri
Yukarı