• 14-04-2020, 19:43:25
    #1
    Kullanıcının klavyeden gireceği harfe göre bir if bloğu içerisindeki işlemi gerçekleştirmek istiyorum. Aşağıdaki gibi yaptığım zaman t'ye basınca direkt atıyor programdan. Nerede hata yapıyorum bulamadım, rica etsem yardımcı olabilir misiniz ?

    Teşekkürler

    char tip;
    
    printf("Harf girin: ");
    scanf("%c",&tip)
    
    if(tip=='t' || tip=='T')
        {
            hesap=kacmetrekare*tweety;
        }
  • 14-04-2020, 19:47:40
    #2
    Kodun tamamı buysa if icindekileri degisken olarak tanımlamamışsınız. Tam olarak ne yapmaya çalışıyorsunuz?
  • 14-04-2020, 19:47:54
    #3
    #include <stdlib.h> kütüphanesini ekleyip

    if dışına
    system("pause");
    yazınız.

    yada kodun sonuna getchar(); yazınız tam olarak hatırlayamadım C yazmayalı uzun zaman oldu
  • 14-04-2020, 19:50:38
    #4
    Tasaranadam adlı üyeden alıntı: mesajı görüntüle
    Kodun tamamı buysa if icindekileri degisken olarak tanımlamamışsınız. Tam olarak ne yapmaya çalışıyorsunuz?
    Bir halıcı çocuklar için üç ayrı tip halı satmaktadır. Bu halıların tipi, kodu ve metrekare birim fiyatları aşağıda verilmiştir.

    Halı Tipi Kodu Metrekare Birim Fiyatı
    Tweety T 18.80 TL
    BugsBunny B 17.80 TL
    Spiderman S 19.20 TL

    Sipariş alınan halı tipi ve döşenecek alanın metrekaresi girildiğinde ödenmesi gereken ücreti görüntüleyen bir C programı yazınız.

    Örnek Çıktı: Hali Tipi(T/B/S):B Kac metrekare hali dosenecek: 19.6 Odenmesi gereken ucret: 348.88 TL.

    Kodun tamamı

    #include <stdio.h>
    #include <locale.h>
    #include <conio.h>
    
    
    int main(void) {
    setlocale(LC_ALL,"Turkish");
    
    int tweety=18.80;
    int bugsbunny=17.80;
    int spiderman=19.20;
    int kacmetrekare=0;
    float hesap=0;
    
    char tip;
    
    printf("Döşenecek halının metrekaresi");
    scanf("%f",&kacmetrekare);
    
    printf("Siparişiniz aldığınız halı tipini girin: ");
    scanf("%c",&tip);
    
    
    if(tip=='t' || tip=='T')
    {
    hesap=kacmetrekare*tweety;
    }
    
    else if(tip=='b' || tip=='B')
    
    {
    hesap=kacmetrekare*bugsbunny;
    }
    
    else if(tip=='s' || tip=='S')
    
    {
    hesap=kacmetrekare*spiderman;
    }
    
    
    return 0;
    }
  • 14-04-2020, 19:56:30
    #5
    stkersln adlı üyeden alıntı: mesajı görüntüle
    Bir halıcı çocuklar için üç ayrı tip halı satmaktadır. Bu halıların tipi, kodu ve metrekare birim fiyatları aşağıda verilmiştir.

    Halı Tipi Kodu Metrekare Birim Fiyatı
    Tweety T 18.80 TL
    BugsBunny B 17.80 TL
    Spiderman S 19.20 TL

    Sipariş alınan halı tipi ve döşenecek alanın metrekaresi girildiğinde ödenmesi gereken ücreti görüntüleyen bir C programı yazınız.

    Örnek Çıktı: Hali Tipi(T/B/S):B Kac metrekare hali dosenecek: 19.6 Odenmesi gereken ucret: 348.88 TL.

    Kodun tamamı

    #include <stdio.h>
    #include <locale.h>
    #include <conio.h>
    
    
    int main(void) {
    setlocale(LC_ALL,"Turkish");
    
    int tweety=18.80;
    int bugsbunny=17.80;
    int spiderman=19.20;
    int kacmetrekare=0;
    float hesap=0;
    
    char tip;
    
    printf("Döşenecek halının metrekaresi");
    scanf("%f",&kacmetrekare);
    
    printf("Siparişiniz aldığınız halı tipini girin: ");
    scanf("%c",&tip);
    
    
    if(tip=='t' || tip=='T')
    {
    hesap=kacmetrekare*tweety;
    }
    
    else if(tip=='b' || tip=='B')
    
    {
    hesap=kacmetrekare*bugsbunny;
    }
    
    else if(tip=='s' || tip=='S')
    
    {
    hesap=kacmetrekare*spiderman;
    }
    
    
    return 0;
    }
    Ben de çok anlamam ama çıktı yok ki kodlama da. İf içlerinde formullerden sonra printf ile yazdırman gerekli diye düşünüyorum
  • 14-04-2020, 19:58:33
    #6
    hesap değişkeni float, diğerleri int bu yüzden olabilir mi?
  • 14-04-2020, 20:10:26
    #7
    Tasaranadam adlı üyeden alıntı: mesajı görüntüle
    hesap değişkeni float, diğerleri int bu yüzden olabilir mi?
    Doğrudur hocam o veri tiplerini yanlış tanımlamışım dikkatimden kaçmış, düzelttim çok teşekkürler

    Ama yine program halı tipini girme kısmında atmaya devam ediyor bunun nedeni ne olabilir acaba ?

  • 14-04-2020, 20:19:17
    #8
    stkersln adlı üyeden alıntı: mesajı görüntüle
    Kullanıcının klavyeden gireceği harfe göre bir if bloğu içerisindeki işlemi gerçekleştirmek istiyorum. Aşağıdaki gibi yaptığım zaman t'ye basınca direkt atıyor programdan. Nerede hata yapıyorum bulamadım, rica etsem yardımcı olabilir misiniz ?

    Teşekkürler

    char tip;
    
    printf("Harf girin: ");
    scanf("%c",&tip)
    
    if(tip=='t' || tip=='T')
        {
            hesap=kacmetrekare*tweety;
        }


    /******************************************************************************
    
    Online C Compiler.
    Code, Compile, Run and Debug C program online.
    Write your code in this editor and press "Run" button to compile and execute it.
    
    *******************************************************************************/
    
    #include <stdio.h>
    #include <locale.h>
    #include <conio.h>
    #include <math.h>
    #include <float.h>
    
    
    int main(void) {
    setlocale(LC_ALL,"Turkish");
    
    int tweety=18.80;
    int bugsbunny=17.80;
    int spiderman=19.20;
    int kacmetrekare=0;
    float hesap=0;
    
    char tip;
    printf("Siparişiniz aldığınız halı tipini girin: \n");
    scanf("%c", &tip);
    
    printf("Döşenecek halının metrekaresi: \n");
    scanf("%d", &kacmetrekare);
    
    
    
    
    if(tip=='t' || tip=='T'){
    hesap=kacmetrekare*tweety;
    printf("\nToplam tutar : %f", hesap);
    }
    
    else if(tip=='b' || tip=='B'){
    hesap=kacmetrekare*bugsbunny;
    printf("\nToplam tutar : %f", hesap);
    }
    
    else if(tip=='s' || tip=='S'){
    hesap=kacmetrekare*spiderman;
    printf("\nToplam tutar : %f", hesap);
    }
    else{
    printf("Lütfen geçerli bir tip giriniz.");
    }
    
    
    return 0;
    }

    Çıktısı
    Siparişiniz aldığınız halı tipini girin:                                                                                      
    s
    Döşenecek halının metrekaresi:
    4
    
    Toplam tutar : 76.000000
    
    ...Program finished with exit code 0
    Press ENTER to exit console.
  • 14-04-2020, 20:28:02
    #9
    serhatitap adlı üyeden alıntı: mesajı görüntüle
    /******************************************************************************
    
    Online C Compiler.
    Code, Compile, Run and Debug C program online.
    Write your code in this editor and press "Run" button to compile and execute it.
    
    *******************************************************************************/
    
    #include <stdio.h>
    #include <locale.h>
    #include <conio.h>
    #include <math.h>
    #include <float.h>
    
    
    int main(void) {
    setlocale(LC_ALL,"Turkish");
    
    int tweety=18.80;
    int bugsbunny=17.80;
    int spiderman=19.20;
    int kacmetrekare=0;
    float hesap=0;
    
    char tip;
    printf("Siparişiniz aldığınız halı tipini girin: \n");
    scanf("%c", &tip);
    
    printf("Döşenecek halının metrekaresi: \n");
    scanf("%d", &kacmetrekare);
    
    
    
    
    if(tip=='t' || tip=='T'){
    hesap=kacmetrekare*tweety;
    printf("\nToplam tutar : %f", hesap);
    }
    
    else if(tip=='b' || tip=='B'){
    hesap=kacmetrekare*bugsbunny;
    printf("\nToplam tutar : %f", hesap);
    }
    
    else if(tip=='s' || tip=='S'){
    hesap=kacmetrekare*spiderman;
    printf("\nToplam tutar : %f", hesap);
    }
    else{
    printf("Lütfen geçerli bir tip giriniz.");
    }
    
    
    return 0;
    }
    Çıktısı
    Siparişiniz aldığınız halı tipini girin:                                                                                      
    s
    Döşenecek halının metrekaresi:
    4
    
    Toplam tutar : 76.000000
    
    ...Program finished with exit code 0
    Press ENTER to exit console.
    Kod doğru fakat int değişkenlerde noktalı değer alamaz bu sebeple yanlış hesaplıyor. Float yaparsanız program düzelir ellerinize sağlık.