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

  • Caroline Martin

    Caroline Mar

    19 EYLÜL 2008
  • MobileTechReview

    MobileTechRe

    6 HAZİRAN 2008
  • The Fashion Sight

    The Fashion

    22 AĞUSTOS 2011