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

  • Android Police

    Android Poli

    21 NİSAN 2010
  • Jejoab

    Jejoab

    4 NİSAN 2008
  • Learn word 2013 tutorials

    Learn word 2

    5 AĞUSTOS 2014