Losowanie cyfr z powtórzeniem,wprowadzanie liczb wierszy
Ostatnio zmodyfikowano 2017-02-21 18:58
maly7 |
» 2017-02-20 18:38:07 Zmienna maxFillRow odpowiada za to ile wierszy ma być uzupełnionych? Jeśli tak albo przekazuj do funkcji liczbe wierszy - 1 albo w pętli for daj i < maxFillRow - 1 |
|
rafal6191 Temat założony przez niniejszego użytkownika |
» 2017-02-21 10:06:30 i < maxFillRow - 1 Coś takiego nie działa. Już nie mam pojęcia jak to zrobić, szukałem już na kilku forach i różnych poradnikach i wraz nie rozumiem tego. |
|
michal11 |
» 2017-02-21 10:29:05 Wstaw aktualny kod, napisz co nie działa. |
|
rafal6191 Temat założony przez niniejszego użytkownika |
» 2017-02-21 12:40:41 #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 < maxFillRow; ++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; } } Zostało chyba tylko to żeby właśnie ten ostatni wiersz by pusty. Tylko nie wiem w jaki sposób zmienić pętle żeby tak było |
|
hit |
» 2017-02-21 12:56:31 A dlaczego pusty? Z tego co rozumiem to ma on zawierać sumy wartości z kolumn. Niezrozumiałe jest też dla mnie to, że deklarujesz tablicę 5x5, a maksymalna liczba do wypełnienia wierszy to też może być 5. Nie zostanie wtedy 1 wiersz właśnie na te sumy. Wg mnie w takim przypadku powinieneś pobierać 1-4. |
|
michal11 |
» 2017-02-21 14:19:28 do { cout << "Podaj liczbe wierszy ktore maja byc wypelnione (1-4): "; cin >> RowsFilledByDigits; } while( RowsFilledByDigits <= 0 || RowsFilledByDigits >= 5 );
int tab[ RowsNum ][ ColumnsNum ] { 0 };
++RowsFilledByDigits;
Fill( tab, RowsFilledByDigits - 1 );
SumColumns( tab, RowsFilledByDigits );
Print( cout, tab, RowsFilledByDigits );
|
|
rafal6191 Temat założony przez niniejszego użytkownika |
» 2017-02-21 18:58:45 I to już będzie dobrze? Jeśli tak to wielkie wielkie dzięki za pomoc. |
|
1 2 3 « 4 » |