Şimdi Ara

Bİ EL ATIN BEYLER

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
268
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • #include<stdio.h>
    int main( void )
    {
    int sayi_1, sayi_2;
    char devam_mi;
    do {
    printf("Birinci sayıyı giriniz> ");
    scanf("%d",&sayi_1);
    printf("İkinci sayıyı giriniz> ");
    scanf("%d",&sayi_2);
    printf("%d + %d = %d\n", sayi_1, sayi_2, sayi_1 + sayi_2);
    printf("Devam etmek ister misiniz? ");
    //C'de tek karakter okuma işlemi biraz sıkıntılı
    //olduğundan, burada da bir do while kullandık.
    do {
    scanf("%c",&devam_mi);
    }while( devam_mi == '\n' );
    printf("\n");
    } while( devam_mi == 'E' || devam_mi == 'e' );

    return 0;
    }




    C bölümünü bulamadım burda açtım yanlış yerse k.bakmayın.

    SORUN ŞUDUR: do {
    scanf("%c",&devam_mi);
    }while( devam_mi == '\n' );
    printf("\n");
    } while( devam_mi == 'E' || devam_mi == 'e' );

    öncelikle bu do while döngüsünü burda niye kullandık algılayamadım bir bilen açıklayabilirse sevinirim. Ayrıca şu neden olmuyor ?

    #include<stdio.h>


    int main()

    {
    int a,b;
    char c;
    do{
    printf("ilk sayiyi giriniz:");
    scanf("%d",&a);
    printf("ikinci sayiyi giriniz:");
    scanf("%d",&b);
    printf("%d+%d=%d\n",a,b,a+b);
    printf("Devam etmek için e yaziniz:");
    scanf("%c,&c");
    }
    while(c=='e' || c=='E');

    return 0;
    }


    şimdiden teşekkürler,saygılarımla...







  • Do-while döngüsünde karsilastirma işlemi, döngünün sonunda gerçekleşir. Bunun sonucu olarak döngünün içine en az bir defa girilmis olur. Döngü yanlış dahi olsa en az bir kere çalışacak demektir. Bu da şu anlama gelir herhangi bir karar mekanizmasına bakılmaksızın sizin kodunuz bir kere çalışır ve daha sonrasında while içine yazmış olduğunuz kod kontrol edilir. Umarım açıklaya bilmişimdir.

    2. olarak yazdığınız kod da scanf("%c,&c"); yanlış yazılmış. scanf("%c",&c); şeklinde düzeltirseniz çalışacaktır.
  • Aslın sormak istediğimi açık soramamışım. Sormak istediğim 1.de "e" ye basıp while döngüsünü çalıştırırken 2.de neden çalıştıramıyorm o 2. do while döngüsü bişey için gerekli orda ama onu anlayamadım.
    not:Hatayı düzelttim teşekkürler..



    < Bu mesaj bu kişi tarafından değiştirildi nastii -- 11 Temmuz 2013; 3:56:28 >
  • Hocam 2.de çalışmamasının sebebi c değişkenini siz aslında fark etmeden dolduruyorsunuz. Yani siz enter tuşana basınca scanf direk onu okuyor. Bunu 2 yolla aşabilirsiniz.
    1.si scanf(" %c",&c); %c den önce bir boşluk bırakarak.
    2.si scanf den önce fflush(stdin); yazmanız.

    Detaylı bilgiye burdan ulaşabilirsiniz.
  •  
    #include <stdio.h>
    #include <stdlib.h>

    int main(){
    int a,b;
    char c;
    while (1) {
    system("CLS");

    printf("Birinci sayıyı giriniz> ");
    scanf("%d",&sayi_1);
    printf("İkinci sayıyı giriniz> ");
    scanf("%d",&sayi_2);
    printf("%d + %d = %d\n", sayi_1, sayi_2, sayi_1 + sayi_2);

    do {
    printf("Devam etmek ister misiniz? (E/H)");
    scanf("%c", &devam_mi);
    printf("\n");
    } while( devam_mi == 'E' || devam_mi == 'e' || devam_mi == 'n' || devam_mi == 'N' );

    if(devam_mi == 'n' || devam_mi == 'N')
    return 0;
    }
  • Anladım sanırım beyler teşşekkür ederim. Bi sorum daha olucak;




    #include<stdio.h>

    int main()
    {
    int i,tesadufi_sayi;
    int deneme_sayisi = 0;
    while( 1 ){

    tesadufi_sayi = rand() % 100;
    deneme_sayisi++;
    if( tesadufi_sayi == 61 ) break;

    }
    printf("Toplam deneme sayısı: %d\n",deneme_sayisi);
    return 0;
    }



    Dev-C++ son sürümü kullanıyorm ve sürekli "tesadufi_sayi = rand() % 100;" burda hata alıyorm rand'la ilgili sizce sorun ne olabilir ?



    < Bu mesaj bu kişi tarafından değiştirildi nastii -- 11 Temmuz 2013; 14:53:11 >
  • quote:

    Orijinalden alıntı: nastii

    Anladım sanırım beyler teşşekkür ederim. Bi sorum daha olucak;




    #include<stdio.h>

    int main()
    {
    int i,tesadufi_sayi;
    int deneme_sayisi = 0;
    while( 1 ){

    tesadufi_sayi = rand() % 100;
    deneme_sayisi++;
    if( tesadufi_sayi == 61 ) break;

    }
    printf("Toplam deneme sayısı: %d\n",deneme_sayisi);
    return 0;
    }



    Dev-C++ son sürümü kullanıyorm ve sürekli "tesadufi_sayi = rand() % 100;" burda hata alıyorm rand'la ilgili sizce sorun ne olabilir ?


     

    #include<stdio.h>
    #include<stdlib.h> // rand() için bunu eklemen gerek
    #include<time.h> // rand() herseferinde aynı sonucu vermesin diye
    //rastgelelik başlangıcı olarak zaman fonksiyonu gerek
    // time.h bunun için var

    int main()
    {
    int i,tesadufi_sayi;
    int deneme_sayisi = 0;
    srand (time(NULL)); //rastgelelik program başlarken
    // bir defa çağırılsa yeterlidir
    while( 1 )
    {
    tesadufi_sayi = rand() % 100;
    deneme_sayisi++;
    if( tesadufi_sayi == 61 ) break;

    }
    printf("Toplam deneme sayisi: %d\n",deneme_sayisi);
    //artık programı her çalıştırdığında farklı sayıda
    //yani gerçek rastgele sayıda deneme olduğunu göreceksin
    return 0;
    }



    < Bu mesaj bu kişi tarafından değiştirildi Tugrul_512bit -- 11 Temmuz 2013; 17:47:33 >




  • Tamamdır usta çok teşekkür ederim bilgiler için halletim ;)
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.