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ą. |
|
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. |
|
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? #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; } }
|
|
michal11 |
» 2017-02-17 14:58:24 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. |
|
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? |
|
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 |
|
hit |
» 2017-02-20 13:17:41 for( int i = 0; i < 3; ++i )
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? |
|
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. 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? |
|
1 2 « 3 » 4 |