Takže, tu mám program (zo 7. lekcii):
#include <iostream>
using namespace std;
void upravapolozky (int cislopolozky);
void vypis (int pocetpoloziek);
struct katalog
{
char nazov[20];
float cenaEUR;
float cenaSK;
} polozka[40];
int main()
{
cout << "Vitajte v editore poloziek v katalogu!\nChcete pridat polozky? (A/N)";
char volba[2];
char maleano[] = "a";
char velkeano[] = "A";
int cislo = 0;
cin.get(volba, 2);
cin.get();
while ((volba[0] == maleano[0])||(volba[0] == velkeano[0]))
{
++cislo;
upravapolozky(cislo);
cout << "Chcete zadat dalsiu polozku? (A/N) ";
cin.get(volba, 2);
cin.get();
}
vypis (cislo);
cin.get();
cin.get();
return 0;
}
void upravapolozky (int cislopolozky)
{
cout.precision(15);
cout << "Zadajte nazov polozky: ";
cin.get(polozka[cislopolozky].nazov, 19);
cin.get();
cout << endl << "Zadajte cenu polozky v mene EURO: ";
cin >> polozka[cislopolozky].cenaEUR;
cin.get();
polozka[cislopolozky].cenaSK = polozka[cislopolozky].cenaEUR * 30,126;
}
void vypis (int pocetpoloziek)
{
cout.precision(2);
if (pocetpoloziek = 0)
cout << endl << "\t\t\tKatalog je prazdny! Program je ukonceny.";
else
{
cout << "Cislo\t--\tNazov\t--\t--\tCena EURO\t--\tCena SKK" << endl;
int i = 0;
for (int i = 0;i<pocetpoloziek;++i) //TUTO MI TO ROBÍ PROBLÉMY!!!
{
cout << i+1 << "\t\t" << polozka[i+1].nazov << "\t\t" << polozka[i+1].cenaEUR << "\t\t" << polozka[i+1].cenaSK << endl;
}
cout << "Koniec vypisu. Chcete niektoru polozku zmenit? (A/N)";
char volbaedit[2];
char maleano[] = "a";
char velkeano[] = "A";
cin.get(volbaedit, 2);
cin.get();
if ((volbaedit[0] == maleano[0])||(volbaedit[0] == velkeano[0]))
{
cout << "Zadajte cislo polozky: ";
int cisloupravy;
cin >> cisloupravy;
cin.get();
upravapolozky(cisloupravy);
cout << "Upraveny katalog:" << endl;
vypis(pocetpoloziek);
}
else cout << "Program skoncil.";
}
}
Výpis mi nefunguje, pretože mi nechce stanoviť hodnotu i na 0... Namiesto toho má hodnotu -858993460. Co mám zle? Pomôžte mi, prosím...