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ş:
Neden C rand() büyüklükte aynı sırada ...
Neden C 11 bu kodu içeren rand() ile b...
Neden't ondalık sayılar ikili düz...
Neden bu döngü üretmek "uyarı: yi...
Neden'in iki negatif sayıları gös...