Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Program Najmniejsza w tablicy.

Ostatnio zmodyfikowano 2014-12-07 11:35
Autor Wiadomość
blejd
Temat założony przez niniejszego użytkownika
Program Najmniejsza w tablicy.
» 2014-12-07 10:53:54
Witam, z racji że to mój pierwszy post chciałbym wszystkich pozdrowić.
Mam Mały problem (bądź duży) otóż mam do napisania program który wpisze do tablicy kolejno 10 liczb, znajdzie najmniejszą i wypisze ile razy była ona w tablicy wpisana.
ciag liczb ma byc zakonczony zerem, ale zero to nie wartosc tylko oznaka konca ciagu.
C/C++
#include <iostream>

using namespace std;

int main() {
   
    int min;
    int tablica[ 10 ];
    int licznik;
    int i;
    int ile;
   
    cin >> tablica[ licznik ]; //pobieram pierwsza liczbe
    i = tablica[ licznik ]; //i = najmniejsza jaka mam
    ile++; //zwiekszam sobie ilosc wystapiania najmniejszej
    licznik++;
    if( i != 0 )
    {
        do
        {
            cin >> tablica[ licznik ];
            if( tablica[ licznik ] < i ) ///sprawdzam czy najmniejsza ktora mam i jezeli jest wieksza od podanej.
            {
                ile = 0;
                i = tablica[ licznik ]; //jezeli tak
                ile++;
            }
            else if( tablica[ licznik ] = i )
            {
                ile++; //jezeli jest taka sama jak najmniejsza to zwieksz ilosc wystapien
            }
            licznik++;
        } while( licznik < 9 );
       
    }
    else {
        cout << "Pierwsza liczba byla zerem, koniec." << endl;
    }
    cout << "Najmniejsza sposrod wymienionych to: " << i << " I wystapila " << ile << " razy" << endl;
}

Troszeczke zedytowalem program, teraz dziala prawie dobrze.
Sytuacja w ktorej podajemy ciag dziewieciu 2 i jedna edynke na koncu dziala.
Ale np. wpisanie ciagu od 1 do 9 konczy sie tak ze program wpisuje ze najmniejsza to "1" i wystapila 9 razy.
P-122440
pekfos
» 2014-12-07 11:16:46
C/C++
if( tablica[ licznik ] = i )
Przypisanie..?
P-122443
blejd
Temat założony przez niniejszego użytkownika
» 2014-12-07 11:19:16
Racja, tam był błąd, jednak program nadal nie zachowuje się tak jak powinien.

Po wpisaniu ciagu : 2,3,4,5,6,7,8,9,10,1

Otrzymuje informacje ze 1 byla najmniejsza, ale wystapila 2 razy.
P-122445
pekfos
» 2014-12-07 11:24:47
Wszystkie zmienne masz niezainicjalizowane.
P-122446
blejd
Temat założony przez niniejszego użytkownika
» 2014-12-07 11:25:43
C/C++
#include <iostream>

using namespace std;

int main() {
   
   
    int tablica[ 10 ];
    int licznik = 0;
    int i =- 1;
    int ile = 0;
   
    cin >> tablica[ licznik ]; //pobieram pierwsza liczbe
    i = tablica[ licznik ]; //i = najmniejsza jaka mam
    ile++; //zwiekszam sobie ilosc wystapiania najmniejszej
    licznik++;
    if( i != 0 )
    {
        do
        {
            cin >> tablica[ licznik ];
            if( tablica[ licznik ] < i ) ///sprawdzam czy najmniejsza ktora mam i jezeli jest wieksza od podanej.
            {
                ile = 0;
                i = tablica[ licznik ]; //jezeli tak
                ile++;
            }
            if( tablica[ licznik ] == i )
            {
                ile++; //jezeli jest taka sama jak najmniejsza to zwieksz ilosc wystapien
            }
            licznik++;
        } while( licznik < 10 );
       
    }
    else {
        cout << "Pierwsza liczba byla zerem, koniec." << endl;
    }
    cout << "Najmniejsza sposrod wymienionych to: " << i << " I wystapila " << ile << " razy" << endl;
}

Po takich edycjach ten blad nadal wystepuje.
P-122447
pekfos
» 2014-12-07 11:29:38
Usuń ile++ z pierwszego if w pętli.
P-122448
blejd
Temat założony przez niniejszego użytkownika
» 2014-12-07 11:35:07
Ho! Dzięki, coz za trywialne bledy a tyle problemow!
P-122449
« 1 »
  Strona 1 z 1