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

Losowanie cyfr z powtórzeniem,wprowadzanie liczb wierszy

Ostatnio zmodyfikowano 2017-02-21 18:58
Autor Wiadomość
hit
» 2017-02-16 15:18:30
Masz ten parametr ->
int maxFillRow

Twierdząc, że to Twoje pierwsze konto próbujesz obrazić inteligencję kolegów, którzy Ci (nadal) pomagają.
P-157832
michal11
» 2017-02-16 15:21:40
Funkcja Fill wypełnia podaną tablicę losowymi liczbami od zerowego wiersza aż do podanego jako argument, trzeba tam zmienić warunek pętli aby nie wypełniał do końca tylko zostawił ostatni wiersz niewypełniony.
P-157833
rafal6191
Temat założony przez niniejszego użytkownika
» 2017-02-17 12:01:10
@hit

To jest moje pierwsze konto i jedyne na tym forum, słabo ogarniam c++ i dlatego napisałem o pomoc na tym forum, zmieniam plik który w tamtym poście wstawił michal11, bo głównie on tutaj mi pomaga. Jakby tamten post był mój to bym dopytywał się w tamtym poście.

@michal11

o coś takiego chodzi?

C/C++
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include <iomanip>
//====================================================================================================================

void Print( std::ostream & out, int tab[ 5 ][ 5 ], int Rows )
{
    for( int j = - 1; j < 5; ++j )
    {
        out << std::setw( 2 ) <<( j + 1 ) << ": ";
    }
    out << "\n";
   
    for( int i = 0; i < Rows; ++i )
    {
        out << std::setw( 2 ) <<( i + 1 ) << ": ";
        for( int j = 0; j < 5; ++j )
        {
            out << std::setw( 3 ) << tab[ i ][ j ] << " ";
        }
        out << "\n";
    }
}

void Fill( int tab[][ 5 ], int maxFillRow );
void SumColumns( int tab[][ 5 ], int Rows );

//====================================================================================================================

int main()
{
    using std::cout;
    using std::endl;
    using std::cin;
   
    srand( time( 0 ) );
   
    const int RowsNum = 5;
    const int ColumnsNum = 5;
   
    int RowsFilledByDigits;
    do
    {
        cout << "Podaj liczbe wierszy ktore maja byc wypelnione (1-5): ";
        cin >> RowsFilledByDigits;
       
       
    }
    while( RowsFilledByDigits <= 0 || RowsFilledByDigits >= 6 );
   
    int tab[ RowsNum ][ ColumnsNum ] { 0 };
   
   
    Fill( tab, RowsFilledByDigits );
   
    SumColumns( tab, RowsFilledByDigits );
   
    Print( cout, tab, RowsFilledByDigits );
   
   
    return 0;
}
//====================================================================================================================
void Fill( int tab[][ 5 ], int maxFillRow )
{
    for( int i = 0; i < 3; ++i )
    {
        for( int j = 0; j < 5; ++j )
        {
            tab[ i ][ j ] = rand() % 9 + 1;
        }
    }
}
//*****************************************************************************
void SumColumns( int tab[][ 5 ], int Rows )
{
    int columnSum = 0;
   
    for( int j = 0; j < 5; ++j )
    {
        for( int i = 0; i < Rows; ++i )
        {
            columnSum += tab[ i ][ j ];
        }
        tab[ Rows - 1 ][ j ] = columnSum;
        columnSum = 0;
    }
}
P-157895
michal11
» 2017-02-17 14:58:24
C/C++
void Fill( int tab[][ 5 ], int maxFillRow )
{
    for( int i = 0; i < 3; ++i )
    {
        for( int j = 0; j < 5; ++j )
        {
            tab[ i ][ j ] = rand() % 9 + 1;
        }
    }
}

Nie teraz wypełniasz całą tablicę nie uwzględniając ani podanej liczby max. wierszy do wypełnienia ani zostawienia ostatniego wiersza na sumę. Ten parametr maxFillRow jest tam nie bez powodu.
P-157904
rafal6191
Temat założony przez niniejszego użytkownika
» 2017-02-18 16:20:01
Nie rozumiem jak to zmienić. Ten parametr odpowiada za uzupełnianie tablicy w losowej kolejności tak?
P-157948
rafal6191
Temat założony przez niniejszego użytkownika
» 2017-02-20 12:46:36
Próbowałem poszukać czegoś o tym parametrze, ale na polskich stronach miałem ciężko coś znaleźć tak żebym zrozumiał. Wiem że ten parametr maxFllRow musi być bo dzięki nie wypełnia z tablicy tylko do podanej max liczby, ale nadal nie wiem jak zmienić warunek pętli żeby to dobrze działało
P-158038
hit
» 2017-02-20 13:17:41
C/C++
for( int i = 0; i < 3; ++i )

C/C++
for( int j = 0; j < 5; ++j )

W jednym z tych miejsc powinieneś wykorzystać ten parametr. Spójrz na funkcję SumColumns i pomyśl. Zastanawiam się jeszcze skąd wzięła się ta trójka?
P-158040
rafal6191
Temat założony przez niniejszego użytkownika
» 2017-02-20 17:59:23
Ten parametr powinienem wykorzystać zamiast tej 3. Tylko teraz nie wie  co zrobić żeby ostatni wiersz był pusty. Ta 3 się wzięła przez moje kombinowanie bezmyślne.

C/C++
void Fill( int tab[][ 5 ], int maxFillRow )
{
    for( int i = 0; i < maxFillRow; ++i )
    {
        for( int j = 0; j < 5; ++j )
        {
            tab[ i ][ j ] = rand() % 9 + 1;
        }
    }
}

O to Ci chodziło żeby tak było?
P-158059
1 2 « 3 » 4
Poprzednia strona Strona 3 z 4 Następna strona