pekfos |
» 2017-02-15 19:47:15 Ostatni wiersz ma zawierać sumy kolumn powyżej. Wypełniasz wszystko losowymi liczbami (w tym wiersz sumy), wszystko sumujesz i wyniki nadpisują ostatni wiersz. //edit: c) wprowadzana jest liczba wierszy która będzie wypełniona liczbami. (zabezpiecz aby nie dało się wprowadzić liczby większej od liczby wierszy) d) Zdefiniuj funkcję z parametrem (parametr ustala liczbę wypełnionych wierszy w tablicy) e) W ostatnim wierszu umieści sumy każdej kolumny tablicy |
c)zdefniuj fukcje z parametrem (paraustala liczbę wypełnionych wierszy w tablicy ) która wypełni liczbami wszystkie komórki oprocz ostatniego wiersza d) w ostatnim wierszu umiesc sumy każdej kolumny tablicy |
W poprzednim temacie, rozłączność miejsca na dane i wynik nie jest jednoznacznie opisana. Tutaj już jest i w kontekście tego problemu (zakładając, że to jest inny problem), twoje rozwiązanie nie będzie działać prawidłowo. |
|
michal11 |
» 2017-02-15 20:00:28 Masz rację, ale to wynika z tego, że na początku inaczej zrozumiałem zadanie (zawsze printuje wszystkie wiersze a te niewybrane ustawiało na zero) i wtedy to działało a potem jak to poprawiłem to już mi się nie chciało sprawdzać wyników. Swoją droga to zadanie jest jakoś dziwnie napisane, dla mnie było niejasne na początku. Rozwiązanie jest dość proste, wystarczy w kilku miejscach pododawać -1 lub +1 do warunków pętli, myślę, że to nie będzie trudne dla rafal6191. |
|
rafal6191 Temat założony przez niniejszego użytkownika |
» 2017-02-15 22:47:17 To jest mój pierwszy post, a tamto konto to zwykły zbieg okoliczności bo jeśli bym chciał teraz założyć konto drugie to na pewno nie brałbym podobnego nicku tylko jakiś całkowicie inny.
Rano jak wstanę to spróbuję to ogarnąć i zobaczymy co wyjdzie |
|
rafal6191 Temat założony przez niniejszego użytkownika |
» 2017-02-16 11:27:22 #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; cout << "Podaj liczbe wierszy ktore maja byc wypelnione: "; int tab[ RowsNum ][ ColumnsNum ] { 0 }; int RowsFilledByDigits; cin >> RowsFilledByDigits; 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; } }
Zrobiłem coś takiego minimalnie zmieniłem tamten kod i na tym się zaciąłem nie wiem jak zrobić blokownie wierszy żeby nie można było podać więcej niż jest wpisane w kodzie. Także mam problem z tą sumą co tutaj pisaliście bo nie rozumiem zbytnio na czym to poleg |
|
michal11 |
» 2017-02-16 11:56:04 pętla do while, czyli wczytuj dopóki nie prowadzono poprawnej liczby przykład: int num; do { cout << "wczytaj liczbe (0,10): "; cin >> num; } while( num <= 0 || num >= 10 );
|
|
rafal6191 Temat założony przez niniejszego użytkownika |
» 2017-02-16 12:40:48 Szczerze mówiąc to trochę się już pogubiłem, nie wiem jak to wstawić żeby odpowiednio działało. Dają jakieś dziwne zadania w szkole gdzie nigdy nic takiego nie robiliśmy ;/ |
|
michal11 |
» 2017-02-16 12:56:39 masz taki podpunkt wprowadzana jest liczba wierszy która będzie wypełniona liczbami. (zabezpiecz aby nie dało się wprowadzić liczby większej od liczby wierszy |
w moim kodzie jest to zmienna RowsFilledByDigits czyli masz za zadnie tak zabezpieczyć swój program żeby ta zmienna nie była większa niż max. liczba wierszy w tablicy no i żeby nie była ujemna bo wiadomo wtedy to nie ma sensu. Ja ci wyżej napisałem pętlę zabezpieczającą przed wpisaniem liczby z innego przedziału niż podany (w przykładzie jest to przedział zamknięty od 1 do 9) czyli twoje zadanie polega na takim wkomponowaniu tej pętli w swój program aby zabezpieczyć przed wprowadzeniem do zmiennej RowsFilledByDigits innej liczby niż z przedziału który chcesz. |
|
rafal6191 Temat założony przez niniejszego użytkownika |
» 2017-02-16 15:05:57 Dobra udało mi się zabezpieczyć i żeby przechodziło z pętli. Teraz jeszcze mam pytanko odnośnie punktu
c)zdefiniuj funkcje z parametrem (parametr ustala liczbę wypełnionych wierszy w tablicy ) która wypełni liczbami wszystkie komórki oprocz ostatniego wiersza
Nie wiem czy to już jest zrobione czy jeszcze? Jeśli tak to w którym momencie? Bo chciałbym lepiej zrozumieć na jakiej zasadzie działa cały kod żebym później już wiedział jak cos takiego zrobić |
|
1 « 2 » 3 4 |