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

Zadanie domowe lekcja 22 problem

Ostatnio zmodyfikowano 2014-12-02 16:26
Autor Wiadomość
dafuck17
Temat założony przez niniejszego użytkownika
Zadanie domowe lekcja 22 problem
» 2014-11-30 17:33:44
Hej, mam problem (znowu xD)
Treść zadania: Napisz program który wykona wszystkie poniższe kroki w podanej kolejności:
Losuje 10 liczb z przedziału od 10 do 30 włącznie i zapisuje je do tablicy;
Wypisuje 10 wylosowanych liczb od początku do końca;
Wypisuje 10 wylosowanych liczb od końca do początku;
Znajduje najmniejszą oraz największą wylosowaną liczbę.
Wypisuje najmniejszą i największą wylosowaną liczbę.
Program nie może używać pętli innych niż pętla for.

Mój kod:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

void wylosujLiczby( int tablica[], int ile )
{
    cout << "Losuje liczby: " << endl;
    for( int licznik = 0; licznik < ile; licznik++ )
    {
        int losowanie;
        losowanie =( rand() % 21 ) + 10;
        tablica[ licznik ] = losowanie;
    }
    cout << "Wylosowano" << endl;
}

void wypiszTablice( int tablica[], int ile )
{
    for( int licznik = 0; licznik < ile; licznik++ )
    {
        cout << "Liczba nr " <<( licznik + 1 ) << endl;
        cout << tablica[ licznik ] << endl;
    }
}

void wypiszTabliceOdTylu( int tablica[], int ile )
{
    for( int licznik = 9; licznik >= ile; licznik-- )
    {
        cout << "Wypisuje tablice od tylu: " << endl;
        cout << tablica[ licznik ] << endl;
    }
}

int znajdzMinimum( int tablica[], int ile )
{
    cout << "Wybieram najmniejsza liczbe... " << endl;
    // ....
   
   
   
    int main()
    {
        srand( time( NULL ) );
        int los = 10;
        int tablica[ 10 ];
        wylosujLiczby( tablica, 10 );
        wypiszTablice( tablica, 10 );
        wypiszTabliceOdTylu( tablica, 0 );
        int iMin = znajdzMinimum( tablica, 10 );
        return 0;
    }
 
Mianowicie mam problem ze znalezieniem minimum tablicy. Próbuje już chyba z 2 godziny na różne sposoby i nie mogę nic wymyślić :( W lekcji nic nie pisze jak to zrobić. Pomoże ktoś? :)
P-121758
Rashmistrz
» 2014-11-30 17:40:10
Tworzysz sobie tymczasową zmienną do której
przypiszesz pierwszy element tablicy.
(Lepiej pierwszy element z tablicy niż zero,
bo jak wszystkie z ciągu będą większe od
zera to uzyskamy nieprawidłowy wynik.)

Pierwszego elementu już nie musimy do niczego
porównywać, więc przechodzimy do następnego.

Porównujemy element z tablicy z tymczasową zmienną
i jeśli jest mniejszy od niej to ją nim zastępujemy.

Powtarzamy ostatnią czynność aż porównamy tymczasową
zmienną z ostatnim elementem z tablicy.

Liczba która zostanie w tymczasowej zmiennej będzie
najniższą wartością znajdującą się w tablicy.


"maksimum" zrobisz analogicznie do "minimum".
P-121760
dafuck17
Temat założony przez niniejszego użytkownika
» 2014-12-01 15:28:29
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

void wylosujLiczby( int tablica[], int ile )
{
    cout << "Losuje liczby: " << endl;
    for( int licznik = 0; licznik < ile; licznik++ )
    {
        int losowanie;
        losowanie =( rand() % 21 ) + 10;
        tablica[ licznik ] = losowanie;
    }
    cout << "Wylosowano" << endl;
}

void wypiszTablice( int tablica[], int ile )
{
    for( int licznik = 0; licznik < ile; licznik++ )
    {
        cout << "Liczba nr " <<( licznik + 1 ) << endl;
        cout << tablica[ licznik ] << endl;
    }
}

void wypiszTabliceOdTylu( int tablica[], int ile )
{
    for( int licznik = 9; licznik >= ile; licznik-- )
    {
        cout << "Wypisuje tablice od tylu: " << endl;
        cout << tablica[ licznik ] << endl;
    }
}

int znajdzMinimum( int tablica[], int ile )
{
    int minimum = tablica[ 0 ];
    cout << "Wybieram najmniejsza liczbe... " << endl;
    for( int licznik = 1; licznik < ile; licznik++ )
    {
        if( tablica[ licznik ] < minimum )
             tablica[ licznik ] = minimum;
       
    }
    return minimum;
}


int main()
{
    srand( time( NULL ) );
    int los = 10;
    int tablica[ 10 ];
    wylosujLiczby( tablica, 10 );
    wypiszTablice( tablica, 10 );
    wypiszTabliceOdTylu( tablica, 0 );
    int iMin = znajdzMinimum( tablica, 10 );
    cout << znajdzMinimum( tablica, 10 );
    return 0;
}
Sorki, że tak męczę ale starałem się zrobić tak jak opisałeś i za każdym razem mi wychodzi: minimum = tablica[ 0 ]. Gdzie tkwi błąd? :/
P-121830
Rashmistrz
» 2014-12-01 15:35:41
Gdzie tkwi błąd?
C/C++
if( tablica[ licznik ] < minimum )
     tablica[ licznik ] = minimum;
Zrobiłeś na odwrót przypisanie.

Porównujemy element z tablicy z tymczasową zmienną
i jeśli jest mniejszy od niej to ją nim zastępujemy.
P-121831
dafuck17
Temat założony przez niniejszego użytkownika
» 2014-12-02 16:26:23
dzięki!
P-121941
« 1 »
  Strona 1 z 1