c++ numer wiersza dla największej sumy [losowe liczby, for]
Ostatnio zmodyfikowano 2016-12-04 19:35
powek Temat założony przez niniejszego użytkownika |
c++ numer wiersza dla największej sumy [losowe liczby, for] » 2016-12-04 16:27:03 Witam, mój problem polega na tym, że nie wiem co jest tutaj źle, tzn zmagam się z tym, że nr tego wiersza w ktorym jest najwieksza suma się źle pokazuje, ktoś wie jak to naprawić? :/ Potrzebuję do szkoły, w miare możliwości jak najszybciej, pozdrawiaM! Oto kod: #include<iostream> #include<cstdlib> #include<iomanip> #include<ctime> using namespace std; int main() { int max, b, i, j, k, n, suma, losowa; cout << "Podaj liczbe wierszy tablicy: "; cin >> n; cout << "Podaj liczbe kolumn tablicy: "; cin >> k; int tab[ n ][ k ]; srand( time( NULL ) ); for( int i = 0; i < n; i++ ) { for( int j = 0; j < k; j++ ) { losowa = rand() % 10 + 1; tab[ i ][ j ] = losowa; } } for( int i = 0; i < n; i++ ) { b = 1; suma = 0; for( int j = 0; j < k; j++ ) { cout << setw( k ) << tab[ i ][ j ]; suma = suma + tab[ i ][ j ]; if( max < suma ) max = suma; } cout << " -> suma wynosi " << suma << endl; b = 1; for( int i = 1; i < n; i++ ) { if( max < tab[ i ][ j ] ) { max = tab[ i ][ j ]; b = 1; } } } cout << " \n mnajwieksza suma to " << max << " dla wiersza nr" << b + 1 << "\n \n"; system( "PAUSE" ); return 0; }
[/i] |
|
Gibas11 |
» 2016-12-04 17:22:35 W poprawność algorytmu nie wnikałem, bo wstawiłeś kod bez znaczników [cpp]…[/cpp], więc czytanie tego to mordęga + znikają indeksy z i – [i] bo działają jak kursywa. Tak na szybko: - Nigdzie nie ustawiasz wartości tego twojego b (świetna nazwa zmiennej) na cokolwiek innego od 1 . - int tab[ n ][ k ]; To tak nie działa. Znaczy zwykle działa, ale nie jest zgodne ze standardem C++, poczytaj o dynamicznej alokacji pamięci. - using namespace std; robi ci śmietnik w globalnej przestrzeni nazw, używa się std::cout , std::cin , std::endl itd. |
|
powek Temat założony przez niniejszego użytkownika |
» 2016-12-04 17:53:34 No okej, a mógłbyś pomóc, tzn zrobić to tak żeby było poprawnie? Proszeee.. :) |
|
Gibas11 |
» 2016-12-04 18:46:02 W komentarzach masz wyjaśnienie. #include<iostream> #include<cstdlib> #include<iomanip> #include<ctime>
int main() { int k, n; std::cout << "Podaj liczbe wierszy tablicy: "; std::cin >> n; std::cout << "Podaj liczbe kolumn tablicy: "; std::cin >> k; int tab[ n ][ k ]; std::srand( std::time( NULL ) ); for( int i = 0; i < n; ++i ) { for( int j = 0; j < k; ++j ) { tab[ i ][ j ] = rand() % 10 + 1; } } int max = 0; int wiersz = 0; for( int i = 0; i < n; ++i ) { int suma = 0; for( int j = 0; j < k; ++j ) { suma += tab[ i ][ j ]; } if( suma > max ) { max = suma; wiersz = i + 1; } } std::cout << " \n mnajwieksza suma to " << max << " dla wiersza nr " << wiersz << "\n \n"; system( "PAUSE" ); return 0; }
|
|
powek Temat założony przez niniejszego użytkownika |
» 2016-12-04 19:21:03 No dobra, wszystko pięknie tylko wcześniej wyświetlała mi się tak jakby tabelka z tymi wierszami i kolumnami a teraz tego nie ma :v |
|
SeaMonster131 |
» 2016-12-04 19:35:06 No to sobie to dopisz. Skoro tamten kod był Twój, to powinieneś wiedzieć co, jak i gdzie :). |
|
« 1 » |