1. #1

    Grubu
    Kıdemli Üye
    İş
    Üniversite

    C sorusu

    burdaki hatayı bulabilecek var mı?
    iki saattir uğraşıyorum bir yerde hata var düzgün çalışmıyor.




    int secim,secim2,s1,s2,s;
    printf("Dort islem icin 1 e basiniz.\n");
    printf("Kok veya kare almak icin 2 ye basiniz.\n");
    enbasa: printf("Secim yapiniz.");scanf("%d",&secim);
    switch(secim)
    {
    case 1:
    {
    printf("Toplama icin 1 e basiniz.\n");
    printf("Cikarma icin 2 ye basiniz.\n");
    printf("Carpma icin 3 e basiniz.\n");
    printf("Bolme icin 4 e basiniz.\n");
    secimyap: printf("Secim yapiniz.");scanf("%d",&secim2);
    printf("Iki adet sayi giriniz.");scanf("%d%d",&s1,&s2);
    if(secim2==1)
    {
    int toplam=s1+s2;
    printf("Toplam=%d",toplam);
    }
    else if(secim2==2)
    {
    int fark=s1-s2;
    printf("Fark=%d",fark);
    }
    else if(secim2==3)
    {
    int carpim=s1*s2;
    printf("Carpim=%d",carpim);
    }
    else if(secim2==4)
    {
    float bolum=(float)s1/(float)s2;
    printf("Bolum=%.1f",bolum);
    }
    else
    {
    printf("Gecersiz bir sayi girdiniz.");goto secimyap;
    }
    }

    case 2:
    {
    printf("Sayiyi giriniz.");scanf("%d",&s);
    printf("Karesini almak icin 1 e basiniz.\n");
    printf("Kokunu alamak icin 2 ye basiniz.\n");
    tekrar2: printf("Secim yapiniz:");scanf("%d",&secim2);
    if(secim2==1)
    {
    int kare=s*s;
    printf("Sayinin karesi=%d",kare);
    }
    else if(secim2==2)
    {
    printf("Sayinin koku=%.1f",sqrt(s));
    }
    else
    {
    printf("1 veya 2 yi tuslayiniz");goto tekrar2;
    }
    }
    default:
    {
    printf("1-2 den birini tuslayiniz.");goto enbasa;
    }
    }

  2. #2

    Grubu
    Üye
    İş
    Üniversite
    C keywordlarını bilmediğim için kodu yazamıyorum. C# biliyorum. Ne yapmak istediğinizi söylerseniz eğer isterseniz C#'da projeyi yapıp yollayabilirim size. Sizde C#'daki kodları C'ye göre çevirirsiniz.. C ile C# arasında pek fark yok zaten aynı. Keywordlar farklı tek.

  3. #3

    Grubu
    Kıdemli Üye
    İş
    Üniversite
    Alıntı mertertugrul'den alıntı Mesajı göster
    C keywordlarını bilmediğim için kodu yazamıyorum. C# biliyorum. Ne yapmak istediğinizi söylerseniz eğer isterseniz C#'da projeyi yapıp yollayabilirim size. Sizde C#'daki kodları C'ye göre çevirirsiniz.. C ile C# arasında pek fark yok zaten aynı. Keywordlar farklı tek.
    ben c# bilmiyorum yeni başladım c yi öğrenmeye. Yani çeviremem ben kodları c ye

  4. #4

    Grubu
    Kıdemli Üye
    İş
    Diğer
    Merhaba,siteye pek sık uğrayamamak,uğrayınca kimsecikleri görememek üzücü..
    Bu arada bu tür soruları teknoloji forumlarına sorarsanız geri dönüş daha hızlı olur,ileri seviyelerde o forumlarda hiç cevap gelmese de böyle başlangıç soruları için cevap veren bulunur..

    Şu an elimde derleyici yok,ama herhangi bir dil hatası görmedim,sorunuzu nereye ve kime sorarsanız sorun,her zaman hatanın türünü belirtmelisiniz..Program açılıyor ama çalışırken mi hata veriyor,hiç mi derlenmiyor,sadece belli durumlarda mı hata veriyor,kodların altında kırmızı çizgi mi var vs...

    Programda gözüme çarpan iki hata var,birisi belli durumlarda oluşacak bir hata,diğeri her zaman oluşacak hata..
    İlk hata bölme kısmı,o kısma bir if-else daha koyup bölen sayının sıfır olup olmadığını kontrol ederek bu hatayı aşabilirsiniz,diğer türlü program çökecektir.
    İkinci hata switch kısmı,switch mantığını anlamışsınız ama bir şeyi unutmuşsunuz,break ifadesi..caselerden sonra break deyimini yazmazsanız case değerleri ne olursa olsun switch içindeki her kod işlenecektir..

    Başka hata göremedim,geri dönüş yaparsanız daha fazla yardımcı olabilirim eğer sorun hâllolmadıysa..

    Son olarak goto türü ifadeler programcılıkta önerilmez,her ne kadar görünüşte bir kısımdan başka bir kısma geçmek gibi görünse de kodlar herkesin bildiği gibi 1-0 değerlerinden ibarettir,ve işlemcinin bu basit goto ifadesinin ne anlama geldiğini anlaması için derleyici arkada ek kodlar eklemek ve programı bir nevi döngüye sokmak zorundadır,aklınızda bulunsun..
    9⁵+2⁵+7⁵+2⁵+7⁵=92727 ... 9⁵+3⁵+0⁵+8⁵+4⁵=93084

  5. #5

    Grubu
    Site sahibi
    İş
    Matematik Öğretmeni
    Tükenir kalem, okul açılıyor. Sorular gelmeye başlayacaktır.

  6. #6

    Grubu
    Kıdemli Üye
    İş
    Üniversite
    hocam sorular geliyorda eskisi gibi ortam kalmadı eskiden hocalarımız arkadaşlarımız soru çözenler sorular üzerinde konuşan eğlenen bir grup vardı şimdi gelenler sorularını sorup gidiyor bazıları sorular çözülse bile bir teşekkür bile yazmadan bakıp geçiyor tabi şu da var çoğumuz çeşitli üniversitelerde çeşitli bölümlerdeyiz vakit buluamayabiliyoruz ama yine de eski ortamından çok çok uzak forum

  7. #7

    Grubu
    Site sahibi
    İş
    Matematik Öğretmeni
    serkan, forumdaki müdavimlerin üniversite başlamalarının etkisi büyük. Yeni gönüllüler gelirdi ancak geçen sene soru çözen yok diye üye alımına kapattık. 2-3 gönüllü gelecekse 100 lerce soru soru soran geliyor. Başedemiyoruz bu kadar soru ile.


 

  1. Bu yazıyı beğenerek
    destek
    verebilirsiniz

    Foruma üye olmana gerek yok! Facebook hesabınla yorumlarını bekliyoruz!
Forum Kullanım ve Gizlilik Kuralları