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

  • akalyne

    akalyne

    13 Mayıs 2009
  • Kim Barbin

    Kim Barbin

    3 Mayıs 2012
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008