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, botów: 0