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

Program z funkcjami nie kompiluje się

Ostatnio zmodyfikowano 2017-02-10 16:06
Autor Wiadomość
poczatkujaca222
Temat założony przez niniejszego użytkownika
Program z funkcjami nie kompiluje się
» 2017-02-10 14:50:32
Witam mam problem ze skompilowaniem programu treść zadania brzmi:
Napisać program, który wczytuje tablice A[w][k] i B[w][k] (w, k - stałe) zawierające rekordy o polach (towar,
cena), po czym w tablicy A przesuwa cyklicznie o 1 miejsce w lewo pierwszy wiersz tej tablicy, zaś w tablicy B
przesuwa cyklicznie o 1 miejsce w lewo ostatni wiersz tej tablicy. Na koniec wydrukować wierszami obie tablice.
Należy napisać i wykorzystać:
- funkcję wczytywania danych do jakiejś tablicy podanego typu rekordowego
- funkcję, która w jakiejś tablicy tego typu przesuwa cyklicznie o 1 miejsce w lewo wiersz o jakimś indeksie
- funkcję drukowania wierszami jakiejś tablicy podanego typu rekordowego.
Uwaga: słowo „jakiś” oznacza parametr funkcji

Mój kod:
C/C++
#include <iostream>

using namespace std;

const int w = 3;
const int k = 2;

struct SDane
{
    string imie;
    double ocena;
};

void wczytaj( SDane X[ w ][ k ] )
{
    for( int i = 0; i < w; i++ )
    {
        for( int j = 0; j < k; j++ )
        {
            cout << "Podaj imie i ocene: ";
            cin >> X[ i ][ j ].imie >> X[ i ][ j ].ocena;
            cout << endl;
        }
    }
}

void przesun( SDane X[ w ][ k ], int i )
{
    SDane schowek = X[ i ][ 0 ];
   
    for( int j = 0; j < k; j++ )
    {
        X[ i ][ j ] = X[ i ][ j + 1 ];
    }
    X[ i ][ k - 1 ] = schowek;
}

void drukuj( SDane X[ w ][ k ] )
{
    for( int i = 0; i < w; i++ )
    {
        for( int j = 0; j < k; j++ )
        {
            cout << X[ i ][ j ].imie << "\t" << X[ i ][ j ].ocena << "\t\t";
        }
    }
}
int main()
{
    SDane A[ w ][ k ];
    SDane B[ w ][ k ];
    wczytaj( A[ w ][ k ] );
    wczytaj( B[ w ][ k ] );
    przesun( A[ w ][ k ], 0 );
    przesun( B[ w ][ k ], w - 1 );
    drukuj( A[ w ][ k ] );
    drukuj( B[ w ][ k ] );
   
    return 0;
}
P-157572
carlosmay
» 2017-02-10 15:43:38
wczytaj( A );
Przekaż tablicę, jeśli chcesz odebrać tablicę w funkcji.

» Kurs C++ » Poziom 2Przekazywanie tablic jednowymiarowych do funkcji lekcja
http://edu.pjwstk.edu.pl​/wyklady/pro/scb/PRG2CPP_files​/node30.html
P-157574
mateczek
» 2017-02-10 16:06:12
C/C++
for( int j = 0; j < k; j++ ) //
{
    X[ i ][ j ] = X[ i ][ j + 1 ]; //j+1  przekraczasz zakres!!!!
P-157575
« 1 »
  Strona 1 z 1