C Dilinde Rastgele Sayı Üretmek

0

C Dilinde Rastgele Sayı üretmek için  rand(); fonksiyonu kullanılır bunun içinde <stdlib.h> kütüphanesi tanımlamak gerekir fakat asıl sorun her defasında aynı sayıyı üretmesi yada belli bir aralıkta sayı üretme sorunudur.Bunları tek tek ele alacağız önce rastgele sayı üreticez daha sonra 0 ile bir sayı arasında sayi üreticez en sonundada istediğimiz iki sayı arasında bir sayı üretip konuyu bitireceğiz 🙂

/* Ahmet GÜREL
www.gurelahmet.com | twitter.com/ahmettgurell
[email protected] */

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int main()
{

int rastgele; 
rastgele=rand();

printf("%d",rastgele);
return 0;
getch();

}

Yukarıdaki kod blogunda kütüphaneleri tanımladıktan sonra rand fonksiyonu ile rastgele sayı üretip ekrana yazdırdık fakat bu sayı için herhangi bir aralık kullanmadık.Şimdide 0 ile 25 arasında rastgele sayı üreten kodu yazalım.

/* Ahmet GÜREL
[email protected] */

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int main()
{

int rastgele; 
rastgele=rand()%25;

printf("%d",rastgele);
return 0;
getch();

}

Bir önceki kodtan tek farki rand fonksiyonu % ile istediğimiz aralığa getirdik tabi ki bu aralık bu kod için 0 ile 25 arasında  bu sadece 0 dan istediğimiz bir sayıya kadar rastgele üretir bunu 5 ile 25 arasında rastgele sayı üretmek için kullanalım.

/* Ahmet GÜREL
www.gurelahmet.com | twitter.com/ahmettgurell
[email protected] */

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int main()
{

int rastgele; 
rastgele=5+rand()%20;

printf("%d",rastgele);
return 0;
getch();

}

Şimdi ele alacağımız bu yapı 5 ile 25 arasında sayı üretiyor üstte ki mantığı anladıysanız bu kısım çok daha basit rand()%20 ifadesi 0 ile 20 arasında sayı üretiyor bu üretilen sayıyıda önundekı 5 ile topluyoruz mantığı bu hangı sayı üretilirse 5 ekliyor 0 üretse sayı 5 oluyor 15 üretse 20 oluyor fakat en önemli kısım yazdıgımız tüm bu kodlar programı kaç kere çalıştırırsanız çalıştırın aynı sayıyı üretiyor her defasında farklı sayı üretmek içinde aşağıdaki kod bloğunu kullanıyoruz.

/* Ahmet GÜREL
www.gurelahmet.com | www.twitter.com/ahmettgurell
[email protected] */

#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>

int main()
{

int rastgele;
srand(time(NULL)); 
rastgele=5+rand()%25;

printf("%d",rastgele);
return 0;
getch();

}

Yukarıdaki yeni bir kütüphane olan <time.h> kütüphanesini ekleyerek srand(time(NULL)); bu kod satırını eklediğimizde program her defasında farklı bir sayıyı üretmiş olacak C dilinde rastgele sayı üretmek böyle diğer dillerdede bu yapı çok farklı değil bazı küçük farklılıklar oluyor sadece yazımız burada bitiyor başka bir yazıyla görüşmek üzere 🙂


Ahmet Gürel

Cyber Security Researcher | Penetration Tester

9 Comments

  1. Bu paylaşımı çok yararlı buldum teşekkürler…

  2. Teşekkürler hocam gerçekten çok işime yaradı.

  3. Mert Can Reply to Mert

    Negatif sayıları nasıl üretiriz hocam ?

  4. negatif sayıları da içeren rastgele sayıları nasıl üretiriz?

  5. sayıyı üretin sonra başına eksi koyun

  6. kodları parça parça almanız ve sade anlatımınız için teşekkür ederim.

  7. abi ben c de uygulama yazmak istiyorum ,sorum şu iki sayı rastgele alıyorum ve kullanıcıdan bu sayıların toplamını istiyorum ve eğer soruyu doğru cevaplamazsa sorunun tekrar sorulaması lazım taki doğru cevabı bulana kadar nasıl yapabilirim (bu arada yeni başaladım).

    • Selam Yavuz,

      Kusura bakma yorumunu biraz geç gördüm. İki farklı rastgele değer ürettikten sonra bunları toplayarak yeni bir değişkene atayıp kullanıcıdan aldığın tahmin edilen değeri bir döngü ile kontrol edebilirsin. Örnek olması açısından bu örneği senin için yazdım bu linkten ulaşabilirsin. https://paste.ubuntu.com/p/qkx5TSdRGP/

      İyi günler, iyi çalışmalar.

Burak için bir yanıt yazın Yanıtı iptal et