Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
5
Cevap
12628
Tıklama
0
Öne Çıkarma
C++ Diziye rastgele farklı değer atama nasıl yapılır ?
G
13 yıl
Teğmen
Konu Sahibi

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;

}

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



S
13 yıl
Yarbay

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


Bu mesaja 1 cevap geldi.
T
13 yıl
Binbaşı

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


Bu mesaja 1 cevap geldi.
C
13 yıl
Yüzbaşı

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.


Bu mesaja 1 cevap geldi.
B
13 yıl
Binbaşı

#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 >
Bu mesaja 1 cevap geldi.
9
13 yıl
Çavuş

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



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.