#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
srand(time(0));
for(int i = 0; i < 10; ++i){
printf("%d\n", rand()%10 + 2);
}
return 0;
}
Hocam teşekkür ederim ama sanırım tekrar etmeme olayını algoritma ile yazmam gerekiyor ödevim için sordum. Srand içini hep null olarak kullanmıştık çünkü.srand ile bir seed vermen gerekiyor. Şu şekilde bir örnek ile anlatmaya çalışayım.
srand'a time(0)'ı vererek seed atadık, bu saatten sonra her çağırdığımız rand(), farklı bir değer döndürecek.
Bu değeri sınırlamak için % ile modunu alıyoruz, ben örnekte 10 kullandım. Bu sayede [0, 9] aralığından sayılar elde ediliyor. +2 diyerek de o aralığı [2, 11] yapmış oldum.
Sayıları öylesine verdim, örnek göstermek için.
Kod:#include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ srand(time(0)); for(int i = 0; i < 10; ++i){ printf("%d\n", rand()%10 + 2); } return 0; }
Fark ettin mi bilmiyorum ama senin verdiğin kodu yazınca sayılar tekrar ediyor. srand(time) yazmak yetmiyor. Hiç tekrar etmemesi lazım. Bunu sağlayacak bir algoritma gerekiyor. Hocam öğretseydi zaten hemencecik yapardım, biraz kafa patlatmak gerekiyor. Diziyle yapmaya calısıyorum şu an.NULL da kullanabilirsin. Sonuç olarak fark etmiyor. Compiler için fark edip etmediğini bilmiyorum.
Algoritma olarak yazmanız gerekiyorsa C demeyecekseniz.
Algoritmasını hocanız size nasıl öğrettiyse öyle yazacaksınız. Çok çeşitli algoritmalar gördüm. Benim hocamın kabul edeceği ama sizinkinin kabul etmeyeceği şeyler olduğundan eminim. Aynı şey tam tersi için de geçerli.
İki tane 3 var.srand(time) değil, srand(time(0)) veya srand(time(NULL)) yazmalısınız.
Fark etmedim çünkü bende çalışıyor. 2 yıldır C dilinde bu şekilde rastgele sayı üretiyorum ve 2 yıldır bir kere bile çalışmadığı olmadı.
Bu linke tıklayıp kodu çalıştırmayı dener misiniz?
srand(time) değil, srand(time(0)) veya srand(time(NULL)) yazmalısınız.
Fark etmedim çünkü bende çalışıyor. 2 yıldır C dilinde bu şekilde rastgele sayı üretiyorum ve 2 yıldır bir kere bile çalışmadığı olmadı.
Bu linke tıklayıp kodu çalıştırmayı dener misiniz?
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.