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

Wyszukiwanie minium w tablicy i przypisywanie do drugiej

Ostatnio zmodyfikowano 2018-03-11 14:36
Autor Wiadomość
Giero97
Temat założony przez niniejszego użytkownika
Wyszukiwanie minium w tablicy i przypisywanie do drugiej
» 2018-03-11 12:53:51
Witam mam problem z pewnym zadaniem a mianowicie:
Napisz funkcję
void MinimaWierszami( int t[][ 15 ], int w, int k, int m[] );
która w kolejnych składowych wektora mzapisze minimalne wartości z odpowiednich wierszy macierzy t. Macierz t ma w wierszy i k kolumn (0<=k<=15).
Przetestuj funkcję.
No i napisałem funkcję i jak dochodzi do wywołania to jest błąd w kompilacji przy tablicy g[2].
C/C++
#include <iostream>
using namespace std;
void wczytajMacierz( int a[][ 5 ], int n, int m )
{
    for( int i = 0; i < n; i++ ) //wiersze
    {
        for( int j = 0; j < m; j++ ) //kolumny
        {
            cout << "Podaj element " << i << j << endl;
            cin >> a[ i ][ j ];
        }
    }
}
void MinimaWierszami( int t[][ 15 ], int w, int k, int m[] )
{
    for( int i = 0; i < w; i++ )
    {
        int minimum = t[ i ][ 0 ];
        for( int j = 0; j < k; j++ )
        {
            if( t[ i ][ j ] < minimum );
           
            m[ i ] = minimum;
        }
    }
}
int main()
{
    int a[ 2 ][ 5 ];
    wczytajMacierz( a, 2, 5 );
    int g[ 2 ];
    MinimaWierszami( a, 2, 5, g );
    for( int i = 0; i < 2; i++ )
         cout << g[ i ] << " ";
   
}[ / i ]
P-169916
pekfos
» 2018-03-11 13:19:26
Próbujesz przekazać tablicę o złym rozmiarze.

P-169919
Giero97
Temat założony przez niniejszego użytkownika
» 2018-03-11 13:27:34
Ok udało mi się to naprawić dzięki za podpowiedź :) rzeczywiście źle wywoływałem funkcję.
Jest jeszcze jeden problem po wpisaniu elementów do tablicy i wyświetleniu tablicy g[2] (wprowadzając np. 2 3 4 5 6 1 2 3 1 5)
wyświetla mi elementy 1 5, a przy sumowaniu elementów tablicy wyświetla mi wynik o jeden większy.
C/C++
#include <iostream>
using namespace std;
void wczytajMacierz( int a[][ 5 ], int n, int m )
{
    for( int i = 0; i < n; i++ ) //wiersze
    {
        for( int j = 0; j < m; j++ ) //kolumny
        {
            cout << "Podaj element " << i << j << endl;
            cin >> a[ i ][ j ];
        }
    }
}
void MinimaWierszami( int t[][ 5 ], int w, int k, int m[] )
{
    for( int i = 0; i < w; i++ )
    {
        int minimum = t[ i ][ 0 ];
        for( int j = 0; j < k; j++ )
        {
            if( t[ i ][ j ] < minimum );
           
            m[ i ] = minimum;
        }
    }
}
void sumaElementow( int tab[], int l )
{
    int suma = 0;
    for( int i = 0; i <= l; i++ )
    {
        suma = suma + tab[ i ];
    }
    cout << suma;
}

int main()
{
   
    int a[ 2 ][ 5 ];
    wczytajMacierz( a, 2, 5 );
    int g[ 2 ];
    MinimaWierszami( a, 2, 15, g );
    for( int i = 0; i < 2; i++ )
    { cout << g[ i ] << " "; }
    cout << endl;
    sumaElementow( g, 2 );
}
P-169920
pekfos
» 2018-03-11 13:51:38
C/C++
int minimum = t[ i ][ 0 ];
for( int j = 0; j < k; j++ )
{
    if( t[ i ][ j ] < minimum );
   
    m[ i ] = minimum;
}
Ten kod jest błędny.
P-169921
Giero97
Temat założony przez niniejszego użytkownika
» 2018-03-11 14:14:46
Problem z sumą rozwiązany zły warunek
C/C++
for( int i = 0; i <= l; i++ ) //powinno być
     for( int i = 0; i < l; i++ ).
Rozumiem że błędem w funkcji minimum był średnik po
if( tab[ i ][ j ] );
ale nadal wpisuje złe wartości.
P-169926
pekfos
» 2018-03-11 14:17:39
Rozumiem że błędem w funkcji minimum był średnik po
if( tab[ i ][ j ] );
ale nadal wpisuje złe wartości.
Zobacz co się w tym fragmencie dzieje ze zmienną minimum.
P-169928
Giero97
Temat założony przez niniejszego użytkownika
» 2018-03-11 14:36:35
Program działa już w całości bardzo dziękuję za pomoc.
P-169929
« 1 »
  Strona 1 z 1