Şimdi Ara

C++ Diziye rastgele farklı değer atama nasıl yapılır ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
1
Favori
12.543
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • arkadaşlar yapmak istediğim şey bir loto programı
    bu program 6 tane sayı üretecek
    ben de herbirini bir dizi elemanı olarak düşündüm
    ama bi sorun var
    bazen aynı değeri iki kere atayabiliyo
    diziye atanan her değerin farklı olmasını nasıl sağlarım


    benim yaptığım kısım bu ama dediğim gibi aynı değeri de atayabilio
    #include <iostream> 
    #include <cstdlib>
    #include <ctime>

    using namespace std;

    int main()
    {

    srand(time(NULL));
    int i;
    int dizi[6];

    for(i=0;i<6;i++)
    {
    dizi[i]=rand()%50;

    cout << dizi[i]<<" ";
    }

    return 0;

    }



  • sonuçta rastgele sayı üretiyorsanız her zaman aynı değerlerle karşılaşma ihtimaliniz vardır. isterseniz daha karmaşık algoritmalar ile bu ihtimali düşürebilirsiniz. kesinlikle aynı sayıyı üretmemenin yolu ise kontrol etmektir heralde
  • döngünün içinde döngünün döndüğü kadar farklı variable oluşturup her defasında oluşturduğun sayıya o variable ı eşleştir ve her döndüğünde öncekilerden biriyle karılaştır baya karışık oldu yapılabilir mi bilmiyorum
  • Bir sayi üret, arrayde öncekilerden herhangi biriyle eşit mi diye kontrol et. Eğer eşit ise yeniden sayı üret ve kontrol et, değilse sayıyı array e yerleştir. Array e 6 eleman yerleşene kadar bunları tekrarla. (Söylemesi kolay )
    (rand() % 50) 0 ile 49 arası sayı üretir, 0 gelmemesi için (rand() % 49 + 1) kullan.
  • #include <iostream> 
    #include <cstdlib>
    #include <ctime>
    #include <algorithm> // shuffle icin bunu eklemelisin
    using namespace std;

    int main()
    {

    srand(time(NULL));

    const int MAX=6; // istedigin degeri yazabilirsin

    int dizi[MAX];

    for(int i=0; i < MAX; i++)
    dizi[i] = i + 1;


    random_shuffle(dizi, dizi + MAX);

    for(int i=0; i < MAX; i++)
    cout<<dizi[i]<<" , ";

    return 0;

    }


    Kolay yolu bu



    < Bu mesaj bu kişi tarafından değiştirildi blackwar19 -- 8 Nisan 2012; 3:31:49 >
  • http://www.uzmantr.net.tc/c++.html arkadaşlar bu siteden örneklere bakabilirsiniz eğer başka sorularınız varsa iletişim bölümünden sorabilirsiniz
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.