Şimdi Ara

C'de ikinci işlem yapmak

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
554
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar,
    Daha yeni C öğrenmeye başladığım için bişey denemek istedim. Önce for ile iki deger arasındaki sayiların toplamını buldum. Daha sonra bu işlemi tekrar yapar mısınız gibi bi soru sormak istedim. Ancak ikinci işlemi sormak istediğimde bir türlü ileri gidemedim. Hatamı anlamadım yardımcı olabilir misiniz?

     
    #include <stdio.h>
    int main()
    {

    // amaç iki sayi arasindaki sayiların toplamini bulmak.

    int i,x,y,z=0;


    yeniden: printf("Iki deger giriniz: "); scanf("%d%d",&x,&y);

    if(x<y)
    {
    for(i=x;i<=y;i++)
    {
    z=z+i;
    }

    printf("Sonuc: %d",z);

    }
    else if(x=y)
    {
    printf("Aynı degerler girdiniz.");
    goto yeniden;
    }
    else
    {
    for(i=y;i<=x;i++)
    {
    z=z+i;
    }

    printf("Sonuc: %d\n\n",z);
    }

    char yanit;
    printf("\ntekrar yapmak istiyor musunuz?"); scanf("%c",&yanit);

    switch(yanit)
    {
    case 'Y' : goto yeniden;
    case 'N' : printf("Program sonlandirildi."); break;
    }



    }







  • scanf("%c",&yanit); bu ifadede %c den önce bir boşluk bırakınca çalışıyor. Bildiğim kadarıyla program çalışırken oluşan '\n' (newline) karakterleri scanf in beklediği karakter değerini '\n' olarak almasına sebep oluyor ve program yanit değişkenine newline('\n') karakterini atamış oluyor.



    < Bu mesaj bu kişi tarafından değiştirildi brk0001 -- 27 Temmuz 2016; 18:07:18 >
  • hocam sizin mesajınızı yaptığımda olmadı ama aklıma o an bu ifadeleri eski komutların altına yazmak geldi. Bunu yapınca oldu. Yine de teşekkür ederim. :)

    #include <stdio.h> 
    int main()
    {

    // amaç iki sayi arasindaki sayiların toplamini bulmak.

    int i,x,y,z=0;


    yeniden: printf("Iki deger giriniz: "); scanf("%d%d",&x,&y);

    if(x<y)
    {
    for(i=x;i<=y;i++)
    {
    z=z+i;
    }

    printf("Sonuc: %d",z);
    char yanit;
    printf("\ntekrar yapmak istiyor musunuz?"); scanf(" %c",&yanit);

    switch(yanit)
    {
    case 'Y' : goto yeniden;
    case 'N' : printf("Program sonlandirildi."); break;
    }

    }
    else if(x==y)
    {
    printf("Aynı degerler girdiniz.");
    goto yeniden;
    }
    else
    {
    for(i=y;i<=x;i++)
    {
    z=z+i;
    }

    printf("Sonuc: %d \n\n",z);

    char yanit;
    printf("\ntekrar yapmak istiyor musunuz?"); scanf(" %c",&yanit);

    switch(yanit)
    {
    case 'Y' : goto yeniden;
    case 'N' : printf("Program sonlandirildi."); break;
    }
    }

    char yanit;
    printf("\ntekrar yapmak istiyor musunuz?"); scanf(" %c",&yanit);

    switch(yanit)
    {
    case 'Y' : goto yeniden;
    case 'N' : printf("Program sonlandirildi."); break;
    }



    }



    < Bu mesaj bu kişi tarafından değiştirildi rumman -- 27 Temmuz 2016; 18:24:58 >




  • scanf den önce fflush(stdin); fonksiyonu da kullanabilirsin.
  • goto kullanımı pek tavsiye edilmez bilginize.
  • amewrika kullanıcısına yanıt
    Ne kullanmamı tavsiye edersiniz?
  • Do-while döngüsüyle yapabilirsiniz. Biraz kurcalayın, olmazsa kodları yazıp veririm size. Kolay gelsin. :)
  • Belirli aralıktaki sayıların toplamını
    n*(n + 1)/2 formülü ile de hesaplayabiliriz.

    0 ile her iki sayı arasındaki sayıların toplamını formüle göre hesaplayıp büyük sayıdan küçük sayıyı çıkarıp toplamı bulabiliriz.

    < 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.