C Sorularım

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Easx
    Easx's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek

    Bu gün C çalışmaya başladım deitel&deitelin pdf'inden. Size çok basit gelecek olabilir bu sorunlar yalnız başka bilişim forumlarında yazmıyorum pek bende böyle bir konu açayım hem bu sene müh. giricek birçok arkadaş var arada yararlanırlar bu sorunları yaşarlarsa dedim. :) 

    İlk sorum.

    toplama işlemi alıştırması vardı kitapta. Bende dedimki bir alışveriş programı yazayım sadece toplama basit kaçar yazayım kdv dahil olmayan fiyata kdv ekleyip toplam satış fiyatını göstersin.

    Amacım: Ekmeğin ve Peynirin normal fiyatı girildiğinde kdv'yi ekleyip satış fiyatını veren bir hesap programı.

    Ama programda hiç hata görememe ve çalışmasına rağmen ekmeğin fiyatını 2 kez yazmak zorunda kalıyorum.

    Aynı şekilde normal bir toplama işlemi yaptırdım ama sorun çıkmadı onda 1 kere yazmam yeterli oluyor bir değişkeni.

    Sorun: Birinci değişkeni 2 kere girmek zorunda kalmak.

    #include <stdio.h>
    
    
    int main() 
    
    {
    
    int ekmek,peynir,fiyat                 ;
    
    
    printf ("Ekmegin fiyatini girin\n")    ;
    
    scanf  (" %d ", &ekmek)                ;
    
    printf ("Peynirin fiyatini girin\n")   ;
    
    scanf  (" %d ", &peynir)               ;
    
    fiyat = ekmek + peynir + ( ( ekmek+peynir ) / 100*18 ) ;
    
    printf ("Fiyat %d TL'dir.", fiyat)     ;
    
    return 0;
    
    }

    www.kriptopedi.com
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pcdoktor636
    pcdoktor636's avatar
    Kayıt Tarihi: 12/Ocak/2010
    Erkek

    scanf  (" %d ", &ekmek)

    %d'lerden sonra bıraktığın boşluğu silersen sorunun çözülür hocam.

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Easx
    Easx's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek
    pcdoktor636 bunu yazdı

    scanf  (" %d ", &ekmek)

    %d'lerden sonra bıraktığın boşluğu silersen sorunun çözülür hocam.

    Hacı çok sağol ya hiç aklıma gelmemişti bu. Kitapta okunabilirlik açısından bazı kısımlarda boşluk bırakmanız daha iyi olur C dili boşlukları yoksayar diyorduda ondan hiç ihtimal vermemiştim teşekkür ederim


    www.kriptopedi.com
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    Evet yok sayar fakat string içerisinde (" " işaretleri arasında) değil. Tabi kelimeleri de bölmemek kaydıyla istediğin yere boşluk veya tab atabilirsin.

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Easx
    Easx's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek

    Yine saçma bir soruya takıldım. Kesin çok basit bir yerde hata yapıyorum :/

    Alıştırma şu. Klavyeden 3 farklı tam sayı girişi yaptıran ve bu sayıların toplamını, çarpımını, ortalamasını, enbüyüğünü ve enküçüğünü yazdıran bir program yazınız. Program bittikten sonra bu sırayla alt alta gösterecek .

    Bu sekilde yazdım. enbuyuk ve enkucuk ifadelerini toplam carpım gıbı betımlemedıgım ıcın çalışmıyorlar bu kesin ama if kullanmam gerekiyor alıştırmanın istediğine göre. Bir süre sonra beynim error verdi :/. toplamı carpımı belirttiğim gibi en buyuk ve en kucugude matematiksel olarak belirtebilirim sanırım ama ifleri neye göre yazmalıyım bu durumda?

    Ayrıca bu kadar uzun olmaması gerekiyor. Birçok alıştırmanın cevabı var ama bununkini bulamadığımdan buraya yazayım dedim. 

    Not: Taşak geçmeyin :D öğrenmeye çalışıyorum fransız olduğum bir durum bir bakmışsınız seneye işletim sistemi yazıyorum :D

     

    #include <stdio.h>
    
    int main()
    
    {
    
    int a,b,c,toplam,carpim,ortalama, enkucuk, enbuyuk ;
    
    printf ("Birinci sayiyi girin.\n") ;
    scanf ("%d", &a) ;
    
    printf ("Ikinci sayiyi girin\n") ;
    scanf ("%d", &b) ;
    
    printf ("Ucuncu sayiyi girin.\n") ;
    scanf ("%d", &c) ;
    
    toplam = a+b+c ;
    ortalama = (a+b+c)/3 ;
    carpim = a*b*c  ;
    
    if(a>b>c)
    printf ("En buyuk %d dir.\nEn kucuk %d dir.\n", a, c) ;
    
    if (a>c>b)
    printf ("En buyuk %d dir.\nEn kucuk %d dir.\n", a, b) ;
    
    if (b>a>c)
    printf ("En buyuk %d dir.\nEn kucuk %d dir.\n", b,c) ;
    
    if (b>c>a)
    printf ("En buyuk %d dir.\nEn kucuk %d dir.\n", b,a) ;
    
    if (c>a>b)
    printf ("En buyuk %d dir.\nEn kucuk %d dir.\n", c,b) ;
    
    if (c>b>a)
    printf ("En buyuk %d dir.\nEn kucuk %d dir.\n", c,a) ;
    
    printf ("Toplam %d dir.\nCarpim %d dir.\nOrtalama %d dir.", toplam, carpim,ortalama) ;
    
    
    return 0;
    
    }

    www.kriptopedi.com
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZoRKaYa
    ZoRKaYa's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    c>a && c>b yaz iflerin içerisine


    echo "imzanız özel karakter içermemelidir";
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zeybekustasi
    zeybekustasi's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    Eğer dalga geçen olursa onu linç ederiz merak etme. Bu forumda en nefret ettiğim şeyde zaten çok bildiğini düşünen adamların sen bunu bilmiyo muydun gibi söylemleridir. (unbalanced gibi reislerin çoğalması ümidiyle)

     

    Bende C yi deitelden çalıştım ama hiç böyle bir hata yapmamıştım. (:

    if (b>a>c)

    İf sorgusunun içinde karşılaştırma operatörleriyle 3 farklı argümanı bir anda karşılaştıramazsın. ayrı ayrı mesela b>a && a>c şeklinde yapabilirsin.


    https://www.youtube.com/watch?v=WC3-71NKwPw
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Easx
    Easx's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek
    zeybekustasi bunu yazdı

    Eğer dalga geçen olursa onu linç ederiz merak etme. Bu forumda en nefret ettiğim şeyde zaten çok bildiğini düşünen adamların sen bunu bilmiyo muydun gibi söylemleridir. (unbalanced gibi reislerin çoğalması ümidiyle)

     

    Bende C yi deitelden çalıştım ama hiç böyle bir hata yapmamıştım. (:

    if (b>a>c)

    İf sorgusunun içinde karşılaştırma operatörleriyle 3 farklı argümanı bir anda karşılaştıramazsın. ayrı ayrı mesela b>a && a>c şeklinde yapabilirsin.

    Hocam amele gibi geçen senelerin ardından direk içine dalınca afallama oluyor. Ufak ayrıntıları kaçırıyorum. 3 argüman konusuna dikkat etmemişim mesela :) yavaş yavaş artık.

    Teşekkürler tekrardan


    www.kriptopedi.com
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DrKill
    DrKill's avatar
    Kayıt Tarihi: 10/Mart/2004
    Erkek

    if ((b>a) && (a>c)) yazacaksın hocam.


    Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Easx
    Easx's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek

    Eyv arkadaşlar sağolun :)


    www.kriptopedi.com
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    niRvana_GG
    niRvana_GG's avatar
    Kayıt Tarihi: 01/Kasım/2012
    Erkek

    C de operatorler deger uretebilir yada nesne nin degerini degistirebilir. a>b yazdigin zaman karsilastirmanin sonucunun bi sekilde belirtilmesi lazim. Buda zero yada non-zero deger uretilerek yapilir yani sifir yada sifir olmayan deger. a ile b yi karsilastirdiginda > operatorunu kullaniyorsun yani 2 terim (operand) isteyen operator . > operatoru 6. oncelik seviyesinde ve oncelik yonu soldan saga. Simdi a>b>c ifadesinde soldan saga dogru bakacak ,a b den buyuk ise 1 degeri uretilecek, yani dogru. Simdi ifaden 1>c oldu. Bu yuzden C de operator kullanirken uretilen degeri goz onunde bulundurmak zorundasin. a>b && b>c dedigin zaman iki kosulda dogru ise 1 && 1 olacak. iki kosulda dogru dondugu icin if in icine girecek. "&& ve" , " || veya "opertorlerinede bir bak istersen kitaptan.

Toplam Hit: 4180 Toplam Mesaj: 20