Błąd krótkiego programu


(Druii) #1

Witam

Od niedawana uczę się C++. Na końcu każdego rozdziału jest zadanie. Niestety jedno mnie przerasta.

Oto treść

"Napisz program, który wylosuje 5 liczb całkowitych z zakresu od 4 do 10 włącznie, wypisze te wartości na ekran, po czym zsumuje je i wynik wypisze na ekran. Program ma wykorzystywać tablicę, która zostanie najpierw wypełniona liczbami losowymi z określonego przedziału, a następnie wynik zostanie obliczony na podstawie zawartości całej tablicy."

Zrobiłem to tak:

#include 

#include 

#include 


using namespace std;


int losuj()

{

	int liczba = (( rand() % 10 ) + 4);

	return liczba;

}


void dodawanie(int a)

{

	int s,tab[5];

	s=s+tab[a];

}




int main()

{

	int tab[5];

	int i;

	srand ( time (NULL));

	do

	{

	i++;

	tab[i]=losuj();

	cout << tab[i];

	}

	while(i>5);


	i=0;

	do

	{

		i++;

	dodawanie(tab[i]);

	}

	while(i>5);

}

Już samo dodawanie wylosowanych liczb do tablicy w main nie działało. Może widzicie gdzieś jakiś prosty błąd, a ja nie potrafię go zlokalizować


(Sawyer47) #2
  1. Nie przypisujesz początkowej wartości do zmiennej i

  2. Pętle do..while ze złym warunkiem, wykonują się jedynie raz, bardziej intuicyjne dla mnie jest użycie pętli for w tych przypadkach

  3. Funkcja dodawanie przyjmuje argumenty przez wartość, operuje na lokalnych zmiennych i nic nie zwraca, czyli jej wywoływanie nie daje żadnego efektu.

Spróbuj napisać to od początku, wszystko w funkcji main.