Problem tam olarak şu şekilde;
Klavyeden girilecek sayida öğrencinin 1 vize 2 ödev ve 2 kısa sinav notunu rastgele şekilde atayan algoritmayi yaziniz. Her sınavin notlari kendi içinde %20'si 80-100 arasi, %50'si 50-80 arasinda %30'u ise 0-50 arasında olsun. Bu yüzdelik dilimler olasılık değil, örneğin 10 öğrenci varsa 2'si 80-100, 5'i 50-80 arasında olacak gibi.
Evet bu kadardi, kendim yapmaya ve yapay zekaya yaptirmaya çalıştım ama yüzdelik dilim kısmını tutturmayi basaramiyorum. Algoritmada bunlar olasilik olarak algılanıyor ve hocanın istediği şekilde olmuyor, nasıl yapmam gerekli?
Algoritma mantığı düzgün ama bütün o int yuksekkesim ve diğer int tanımlamalar 0 olur, buna dikkat edilirse (sınıf mevcudunun mesela 1 olduğu vb. exceptional durumlara girmiyorum) sorun kalmaz.
Dediğin şekilde yaptım güzel de gidiyordum ama şöyle bir sikintiyla karşılaştım. 5 farklı fonksiyon var ama rastgele ürettiğim notlar hepsinde aynı oluyor. Srand kullanmama rağmen böyle sebebini anlamadım.
Dediğin şekilde yaptım güzel de gidiyordum ama şöyle bir sikintiyla karşılaştım. 5 farklı fonksiyon var ama rastgele ürettiğim notlar hepsinde aynı oluyor. Srand kullanmama rağmen böyle sebebini anlamadım.
Rastgele_vize değişkenine döngü her başa sardığında farklı sayi gelsin istiyorum.
Bu döngü bir fonksiyonun içinde ve fonksiyonun en başında srand(time(NULL)) var. Başka döngülerde sıkıntı yokken sadece burada rastgele sayı oluşmuyor.
Güncelleme: çözdüm bu sorunu. kendi kendine çözüldü aslinda nasil oldu bilmiyorum
Rastgele_vize değişkenine döngü her başa sardığında farklı sayi gelsin istiyorum.
Bu döngü bir fonksiyonun içinde ve fonksiyonun en başında srand(time(NULL)) var. Başka döngülerde sıkıntı yokken sadece burada rastgele sayı oluşmuyor.
Güncelleme: çözdüm bu sorunu. kendi kendine çözüldü aslinda nasil oldu bilmiyorum
For (i = 0; i <= ogrenci_sayisi; i++) {
Ogrenci. Ogrenci_ortalamalar. Push_back({ogrenci. Ortalamalar_vize. At(i)+ogrenci. Ortalamalar_kisa1.at(i)+ ogrenci. Ortalamalar_kisa2.at(i)+ ogrenci. Ortalamalar_odev1.at(i)+ogrenci. Ortalamalar_odev2.at(i)});
Cout << ogrenci. Ogrenci_ortalamalar. At(i)<<"amamam \n";
}
Ogrenci structinin içindeki vize, odev1, odev2.. Gibi Vector'lerin verilerini sırayla çağırıp, toplayıp push_back ile ogrenci_ortalamaları adlı Vector'e göndermek istiyorum. 10 veriden ilk 5'ini gönderiyor 6.da hata veriyor. 50 giriyorum 25 gönderiyor 26'da hata veriyor sebebini anlayamadım. Hata kodu ise şu şekilde: abort() has been called.