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

c++ numer wiersza dla największej sumy [losowe liczby, for]

Ostatnio zmodyfikowano 2016-12-04 19:35
Autor Wiadomość
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:
C/C++
#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]
P-154482
» 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.
P-154484
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.. :)
P-154485
» 2016-12-04 18:46:02
W komentarzach masz wyjaśnienie.
C/C++
#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;
   
    /* O dynamicznej alokacji wygooglaj */
    int tab[ n ][ k ];
    std::srand( std::time( NULL ) );
   
   
    /* Wypełnienie pseudolosowymi danymi */
    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;
       
        /* Zliczenie sumy w wierszu */
        for( int j = 0; j < k; ++j ) {
            suma += tab[ i ][ j ];
        }
       
        if( suma > max ) {
            /* Zapisanie nowej największej sumy
            * i informacji o wierszu */
           
            max = suma;
            wiersz = i + 1;
        }
    }
   
    std::cout << " \n mnajwieksza suma to " << max << " dla wiersza nr " << wiersz << "\n \n";
    system( "PAUSE" );
    return 0;
}
P-154489
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
P-154495
» 2016-12-04 19:35:06
No to sobie to dopisz. Skoro tamten kod był Twój, to powinieneś wiedzieć co, jak i gdzie :).
P-154497
« 1 »
  Strona 1 z 1