Losowanie od 1 do 100 i znajdowanie najmniejszej i największej liczby

0

Witam jestem początkujący w CPP (3 Klasa technikum). Wykonałem kod ale wyszukuje mi tylko największą liczbę a najmniejszą podaje cały czas 0. Oto kod

#include <iomanip>
#include <cstdlib>
#include <ctime>
#include <iostream>

using namespace std;

int i;
int liczba;
int m ;
int n ; 
int main()
{
	
	srand(time(NULL));
	
	for (i=0;i<30;i++)
	{
		liczba = rand() %100+1;
		cout<<liczba;
		cout<<endl;
		
		if (liczba > m )
		m = liczba;
	
		if (liczba <n )
		n = liczba;
	}
	
	cout<<endl;
	cout<< " Najwieksza liczba to... "<< m;
	cout<<endl;
	cout<< " Najmniejsza liczba to... "<< n;
	cout<<endl;
	system("pause");

return 0;	
}

Jeśli ktoś zauważył jakiś błąd ucieszę się z jego wskazania i wytłumaczenia

5

Zmienną n, która przechowuje najmniejszą liczbę zadeklarowałeś globalnie co znaczy, że domyślnie przyjmie wartość 0, więc nigdy liczba z przedziału 0-100 nie będzie od niej mniejsza.

Polecam podczas jej inicjalizacji ustawić większą wartość niż zakres losowanych liczb np. 1000.

4

Zmienne n,m zainicjuj pierwszą wylosowaną liczbą:

liczba = rand() %100+1;
if( i == 0 ) m = n = liczba;

Dodatkowo

  1. Nie używaj zmiennych globalnych
  2. Używaj nazw zmiennych które coś oznaczają np. zamiast m użyj maksimum
  3. Zmienna i powinna być zdefiniowana w pętli for
for( int i {0} ; i<30 ; ++i )
{
...
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1