SORU
13 HAZİRAN 2015, CUMARTESİ


Neden rand() rand() negatif sayılar üretmek?

rand() kütüphane bir döngü içinde, neredeyse her zaman pozitif sayılar üretir sadece bir kez çağrıldığında, bu işlev gözlemledim.

for (i = 0; i < 100; i  ) {
    printf("%d\n", rand());
}

Ama rand() iki arama eklediğimde, sayıları artık daha fazla negatif sayılar üretti.

for (i = 0; i < 100; i  ) {
    printf("%d = %d\n", rand(), (rand()   rand()));
}

Birisi ikinci durumda negatif sayılar görüyorum nedenini açıklayabilir mi?

PS: srand(time(NULL)) döngü önce tohum başlatmak istiyorum.

CEVAP
13 HAZİRAN 2015, CUMARTESİ


rand() 0 RAND_MAX arasında bir tamsayı dönmek için tanımlanır.

rand()   rand()

taşma olabilir. - Midem bulanıyor ihtimali undefined behaviour sonucu tamsayı taşması nedeniyle oluşur.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ItZWaffleS420

    ItZWaffleS42

    9 EYLÜL 2011
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008
  • tseyina

    tseyina

    2 AĞUSTOS 2006