#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;
int main()
{
int los;
int przydzial [999];
int ilosc=0;
int ilosc2=0;
int suma=0;
srand (time(NULL));
while(ilosc <= 999)
{
los = (rand () %7)+4;
przydzial [ilosc] = los;
cout<< przydzial [ilosc]<<" ";
ilosc++;
}
while (ilosc2 <= 999)
{
suma = suma + przydzial [ilosc2++];
}
cout<<endl<<"suma losow wynosi: "<<suma;
return 0;
}
1) Można jakoś skrócić ten kod? Bo gdy próbuje połączyć "while" w jedno to w "sumie" wyskakują mi monstrualne liczby. (bez pętli "for", ew z pętla - takie zadanie :) )
2) Przy drugiej pętli while nie mogłem użyć warunku zmiennej "ilosc" (tj. w pierwszej pętli while) wyskakiwały mi dziwne znaki. Przed pętlą mam zadeklarowane że "ilosc = 0" więc po skończeniu pierwszej pętli program kontynuuje podróż i nie bierze pod uwagę początkowej deklaracji?
W celu rozwiązania tego problemu użyłem nowej zmiennej "ilosc2" dobra decyzja? mogłem podjąć inną? (Nie licząc, że jest poprawna - program działa).
3) Największy problem miałem z sumowaniem wylosowanych liczb przy użyciu tablic. Sądziłem że gdy dam:
while (ilosc2 <= 999)
{
ilosc2++;
suma = suma + przydzial [ilosc2];
}
Będzie to samo co "przydzial [ilosc2++] ale powyższy kod daje 2x większą cyfrę. Myślałem, że "ilosc2++" jest konieczny do warunku pętli while.
Mam nadzieję, że jakoś poprawnie to wszystko ująłem :)