Úkol 5 – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Úkol 5 – C / C++ – Fórum – Programujte.comÚkol 5 – C / C++ – Fórum – Programujte.com

 

Jarda0
Stálý člen
17. 4. 2006   #1
-
0
-

Tak Dev-C++ mi to sežere, zkompiluje, vše OK, ale pak když ten program spustím, tak napíše chybu, nevíte v čem je?

#include <iostream>


using namespace std;

struct z
{char jmeno[100];
int vek;
char prace[200];};

int main()
{char firma[200];
int zamestnanci,a,i,b,f;
i=0;
f=0;
a=1;
z p[32000];
cout << "Vitejte ve sve firme. nJak se bude Vase firma jmenovat?";
cin >> firma;
cout << "nKolik zamestnancu bude Vase firma mit?";
cin >> zamestnanci;
do
{cout << "nZadejte jmeno " << a << ". zamestnance: ";
cin >> p[i].jmeno;
cout << "nZadejte vek " << a << ". zamestnance: ";
cin >> p[i].vek;
cout << "nZadejte praci " << a << ". zamestnance: ";
cin >> p[i].prace;
cout << "nChcete zadat dalsiho zamestnance (1) nebo skoncit (0) ?" ;
cin >> b;
a++;}
while (a != zamestnanci || b != 0);
do
{cout << "n" << firma << "n";
cout << p[i].jmeno << " " << p[i].vek << " " << p[i].prace << "n";}
while(i != zamestnanci);
cin.get();
return 0;
}

Nahlásit jako SPAM
IP: ...–
Hehe :D
Tom?? Bos0
Stálý člen
17. 4. 2006   #2
-
0
-

Tiez som to kompiloval v Dev C++ a chyby hlasilo.

V kode kde mas napisane



z p[32000];

cim vytvoris jednorozmerne pole 32 000 struktur typu z (cize asi chces mat firmu s 32000 zamestnancami). Dalej v kode pristupujes k udajom tejto struktury


cin >> p.jmeno;

lenze neurcil si do ktorej struktury z tych 32000 sa ma tento udaj alebo udaje zapisat. Cize kebyze to chces zapisat napr. do prvej struktury tak to musis uviest takto:


cin >> p[0].jmeno;

cislo v zatvorke urcuje do ktorej struktury zapisujes.

Ak si zrusis pole struktur a napises len


z p;

tak budes mat vytvorenu jednu strukturu a pri zapisovani do jej premennych mozes pouzit svoj zapis.

Teraz program sice fungovat bude ale na konci mas nekonecny cyklus


do{
cout << "\n" << firma << "\n";
cout << p[0].jmeno << " " << p[0].vek << " " << p[0].prace << "\n";
}
while(i != zamestnanci);

v ktorom urcujes podmienku, ze pokial sa premenna i (inicializovana na hodnotu 0) nerovna premennej zamestnanci, tak sa bude vykonavat telo tohoto cyklu. To znamena, ze pokial uzivatel nezada pre pocet zamestnancov 0, tak vzdy bude tento cyklus nekonecny a program sa "nikdy" neskonci.

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Tomáš Bos0
Stálý člen
17. 4. 2006   #3
-
0
-

Tu je kod ako by to asi "malo" vyzerat. Samozrejme nieje blbuvzdorny, ale na vysvetlenie dufam bude stacit. Ak budes mat nejake nejasnosti tak sa pytaj.



#include <iostream>

using namespace std;

// struktura, do ktorej sa ulozia udaje o zamestnancoch:
struct info
{
char meno[50];
int vek;
char praca[50];
};

int main()
{
// globalne premenne:
int pocetZamestnancov, pokracovat = 1;
char firma[20];

// zadanie nazvu firmy a poctu zamestnancov:
cout << "Nazov firmy: ";
cin >> firma;
cout << "nPocet zamestnancov firmy: ";
cin >> pocetZamestnancov;

// vytvorenie struktury s velkostou, ktoru
// uzivatel zadal:
info zamestnanci[pocetZamestnancov];

// cyklus pre zadavanie udajov o zamestnancoch:
for(int i = 0; i < pocetZamestnancov; i++)
{
cout << "nMeno zamestnanca: ";
cin >> zamestnanci[i].meno;

cout << "nVek zamestnanca: ";
cin >> zamestnanci[i].vek;

cout << "nPraca zamestnanca: ";
cin >> zamestnanci[i].praca;

cout << "nPokracovat dalej? Ano(1) / Nie(0): ";
cin >> pokracovat;

// pokial uzivatel zadal hocijake cislo rozne od
// 1 tak sa zadavanie konci:
if(pokracovat != 1)
break;
}

cout << "nFirma "" << firma << "" ma ";
cout << pocetZamestnancov << " zamestnancov:n";

// vypis mien jednotlivych zamestnancov:
for(int i = 0; i < pocetZamestnancov; i++)
{
cout << zamestnanci[i].meno << "n";
}

system("pause");
return 0;
}

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Jarda0
Stálý člen
17. 4. 2006   #4
-
0
-

JJ, moc díky, já už jsem v tom byl strašně zamotanej :D

Nahlásit jako SPAM
IP: ...–
Hehe :D
Jarda0
Stálý člen
17. 4. 2006   #5
-
0
-

To fórum to nějak upravuje? Já tam měl p[i].jmeno; ne cin >> p.jmeno; A ten tvůj program nějak nejde zkompilovat

Nahlásit jako SPAM
IP: ...–
Hehe :D
Jarda0
Stálý člen
17. 4. 2006   #6
-
0
-

co to blbne kua? cin >> p.jmeno; po p má následovat proměnná i v hranatých závorkách a v původním kodu mi ještě chybí i++;

Nahlásit jako SPAM
IP: ...–
Hehe :D
Zdeněk Lehocký
~ Šéfkorektor
+2
Grafoman
17. 4. 2006   #7
-
0
-

Íčko v hranatých závorkách Fórum chápe jako kurzívu. Takže by bylo lepší, kdybyste namísto [i]i[/i] používali třeba [i]j[/i].

Nahlásit jako SPAM
IP: ...–
* Šéfkorektor *
Tom?? Bos0
Stálý člen
17. 4. 2006   #8
-
0
-

Pravdepodobne su tu nastavene nejake filtre na vyhradeny text. Vsade tam, kde je napisane zamestnanci(bodka)nieco napis zamestnanci(lava hranata zatvorka + i + prava hranata zatvorka).

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Jarda0
Stálý člen
17. 4. 2006   #9
-
0
-

No, právě takhle to tam mám, zkompiluje se to v pohodě, chci to spustit a napíše to tu windowsáckou hlášku v programu se vyskytl problém

Nahlásit jako SPAM
IP: ...–
Hehe :D
Tom?? Bos0
Stálý člen
17. 4. 2006   #10
-
0
-

Poslem ti radsej zdrojak na mail.

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 84 hostů

Podobná vlákna

úkol — založil Jan Koláčný

Ukol — založil adelka17

úkol — založil gandalf555

úkol — založil mmm

úkol — založil martin

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý