mam troche moze lamerski problem ale za help wielkie dzieki
Ostatnio zmodyfikowano 2011-01-17 02:35
UrbanWrc Temat założony przez niniejszego użytkownika |
mam troche moze lamerski problem ale za help wielkie dzieki » 2011-01-17 01:01:26 najpierw napisze moze o co sie rozchodzi.
A no robie sobie te cwiczenia z kursu i wszystko w miare ladnie idzie az to cw 4 z lekcji 8... (starego kursu c++ 2)trzeba tam program ksiegowy zrobic. No i wszystko ladnie tylko jest gdzies blad ktorego z kumplami nie mozemy odnalezc.
chodzi o to ze ostatnia kolumna tabeli tab1 - a konkretniej tab1[0][4] (która sumuje wszystkie poprzednie) pobiera dane z kolejnej petli i przyjmuje wartosc z tab[1][0]. Gdyby to ktos rozwiazal to bede wdzieczny.
#include <conio.h> #include <iostream>
using namespace std; const int ROK = 1; const char KW[ 5 ][ 15 ] = { "Kw I", "Kw II", "Kw III", "Kw IV", "SUMA" };
float tab1[ ROK ][ 4 ];
int main() { short tab1rok[ ROK ]; tab1rok[ 0 ] = 1999; cout << " PROGRAM KSIEGOWY \n" << "Wprowadz dane: \n"; for( short j = 0; j <= ROK; j++ ) { tab1[ j ][ 4 ] = 0; for( short i = 0; i < 4; i++ ) { cout << "podaj dane za kwartal " << i + 1 << " rok: \t" << tab1rok[ j ] << ": "; cin >> tab1[ j ][ i ]; tab1[ j ][ 4 ] = tab1[ j ][ 4 ] + tab1[ j ][ i ]; } tab1rok[ j + 1 ] = tab1rok[ j ] + 1; } cout << "\nROK\t"; for( int i = 0; i < 5; ++i ) cout << KW[ i ] << "\t"; cout << endl; for( int j = 0; j <= ROK; ++j ) { cout << tab1rok[ j ] << "\t"; for( int i = 0; i < 5; i++ ) cout << tab1[ j ][ i ] << "\t"; cout << endl; } cout << tab1[ 0 ][ 4 ] << endl; getch(); } |
|
DejaVu |
» 2011-01-17 01:28:11 W zasadzie to piszecie poza zakresem tablicy.
float tab1[ ROK ][ 4 ];
tab1[ j ][ 4 ] = 0;
|
|
UrbanWrc Temat założony przez niniejszego użytkownika |
» 2011-01-17 01:42:12 :/ dzieki... troche mi zajmie chyba jeszcze ogarniecie tego c++... z tego by wynikalo ze do otatniej komórki z tabeli nie wolno nic wpisywac? tzn ze ona jest dla picu?... BTW dzieki wielkie juz śmiga. |
|
DejaVu |
» 2011-01-17 01:47:01 No jak to nie wolno? Pierwszy element zaczyna się od indeksu 0, a ostatni kończy na indeksie ROZMIAR-1, co daje łączną liczbę ROZMIAR elementów. |
|
UrbanWrc Temat założony przez niniejszego użytkownika |
» 2011-01-17 02:27:11 no tak... tylko troche bez sensu ze pisze w tych klamrach [4] jak moge uzyc max [3]... W sumie to kwestia przyzwyczajenia ale w pascalu sie troche wygodniej deklaruje te tabele... przynajniej jak napisze ze [0..10] to z tej 10tej tez moge skorzystać i w sumie mam 11 pozycji. moze dla tego nie zauwazylem na poczatku tego bledu... W kazdym raziw wielkie dzieki za pomoc juz przynajmniej ten temat ogarnolem :) |
|
DejaVu |
» 2011-01-17 02:35:03 Chyba nie rozumiesz tego co wcześniej napisałem.
/edit:
A co do pascala - fakt: jest wygodniej (dla początkującego). Jednak w C++ wiesz że ktokolwiek nie zrobił tablicy to zawsze zaczyna się od indeksu 0, a nie indeksu np. 50, co z definicji jest bardziej komfortowym rozwiązaniem przy pracy zespołowej bądź przy pracy nad większym projektem. Offsety zawsze można sobie przesunąć na siłę jak jest taka potrzeba. |
|
« 1 » |