1. sayfa
boşver kavga çıkıyor ![]() |
|
çok zor soru mu sordum ? |
hocam bakamadım kusura bakmayın şöyle birşey yaptım burda 0 la 10 arası rastgele sayılar yapabildim boyutu kaçsa onla o arasında olan sayılar ama bunu bir türlü aralık haline getiremedim 20 ile 50 arasında 10 adet rastgele sayı gibisinden #include <iostream> using namespace std; #include <locale.h> #include <ctime> #include <iostream> int main() { srand(time(0)); const int BOYUT = 10; int rastgeleSayi; int dizi[BOYUT] = { 0 }; for (int i = 0; i <= BOYUT - 1; i++) { while (true) { rastgeleSayi = rand() % 10; if (dizi[rastgeleSayi] == 0) { dizi[rastgeleSayi] = i; break; } } } for (int i = 0; i < BOYUT; i++) { cout << dizi << endl; } return 0; } |
hocam birde şey düşündüm rastgele sayı üretmek yerine bir dizi oluşturup for ile dizinin elemanlarını tek tek yazdırsam sonra random_shuffle komutu ile dizinin elemanlarını karıştırıp ilk 10 elemanını felan alsam olabilir mi bunun gibi mi birşey yapmalıyım yada random komutu ile farklı bir yolu varmıdır ? |
Kod eksik ve hatalı. int dizi[BOYUT] = { 0 }; dediğinde ilk elemana 0 koyar fakat ilk eleman neden 0? Sondaki cout << dizi, cout << dizi i olmalı fakat o çok basit, hatadan saymayalım, ona typo / yazım hatası diyelim. if (dizi[rastgeleSayi] == 0) kısmında int türünde dizinin endeksine rasgeleSayi koymak ta oldukça radikal bir hata. Ayrıca 20 ve 50 arası kontrol için kullanılacak 20 ve 50 degerlerini göremedim. bu problemin en direkt çözüm yolu : 20-50 arası ras adında rasgele sayı üret.ras dizinin içinde yoksa diziye ekle, ras dizinin içinde varsa farklı ras ile tekrar (öz) yinele, dizi büyüklüğü boyuta ulaşana kadar bunu (öz) yinele. özyinele => recursion. ras dizinin içinde yoksa kısmını kolaylıkla yapabilmek için c++11 kullanmalısın. ödevde c++11 değil klasik c++98 kullanmak gibi şart var mı? random_shuffle kullanarak bahsettiğin çözüm yöntemi bence geçersiz, ona direkt sıfır verebilir hodja :) |
c++11 kullanmalısın gibi bir şart yok tamamdır çok teşekkür ederim dediğinizi yapmaya çalışıcam |
tüyo vereyim mi :) özyineleme tekniği uygulanmış c++11 çözümü < Resime gitmek için tıklayın >
Not: debug etme amaçlı koyduğum sort orada kalmış, onu kaldırırsan sayıların sırası da rasgele olur. |
#include <iostream>Iterative şekilde yaptım. O(N^2) |
1. sayfa
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜ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.