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

  • BroadCity

    BroadCity

    10 ŞUBAT 2010
  • OVERWERK

    OVERWERK

    6 Temmuz 2010
  • XxMinayaxX1

    XxMinayaxX1

    9 Mayıs 2012