Iosfwd(idk what is that) – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Iosfwd(idk what is that) – C / C++ – Fórum – Programujte.comIosfwd(idk what is that) – C / C++ – Fórum – Programujte.com

 

murdy10
Duch
6. 2. 2019   #1
-
0
-
Nahlásit jako SPAM
IP: 217.195.174.–
6. 2. 2019   #2
-
0
-

Cyklus for má ukončovací podmínku i <5. Pro více jmen je třeba jednak upravit tuto podmínku, jednak upravit velikost pole name.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
6. 2. 2019   #3
-
+1
-
Zajímavé

Ještě jsem si všiml velikosti pole, 4 prvky, ale iterací cyklu je 5. Zápis za pole není korektní postup.

Namísto obrázků vlož kód, jde z Visual Studia zkopírovat a pomocí tlačítka zdrojový kód (tlačítko s otazníkem)ho sem dát. Na ty obrázky abych si vzal mikroskop.

Dobré je velikost pole a počet iterací cyklu definovat makrem. Pak jsou spolu svázané a každá změna hodnoty makra nastaví obojí v souladu.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
murdy10
Duch
6. 2. 2019   #4
-
0
-

#3 hlucheucho
#2 hlucheucho
ale když chci jen 4 jména tak i <5 je správné ne ? že I je menší jak 5, takže když je to v celých číslech tak je to 4 ne?

Nahlásit jako SPAM
IP: 217.195.174.–
murdy10
Duch
6. 2. 2019   #5
-
0
-

#3 hlucheucho

když tam dám např:

int main() {
	int i = 0;
	int a = 0;
	string name[4];
	for (i; i <= 4; i++) {
		cout << "Pracak " << i + 1 << "., zadej jmeno :" << endl;
		getline(cin, name[i]);
		cout << "ahoj," << name[i] <<endl;
	}
return 0;
}

tak to jde, jenomže když chci nejprve definovat všechny ty proměné a pak je nechat vypsat např takto:

int main() {
	int i = 0;
	int a = 0;
	string name[4];
	for (i; i <= 4; i++) {
		cout << "Pracak " << i + 1 << "., zadej jmeno :" << endl;
		getline(cin, name[i]);
	}
	system("pause");
	system("CLS");
	for (a; a <= 4; a++) {
		cout << "Ahoj ty pracaku: " << name[a] << endl;
		system("pause");
	}
	return 0;
}

tak mi to hází tu chybu


Nahlásit jako SPAM
IP: 217.195.174.–
6. 2. 2019   #6
-
0
-

Není správně. cyklus proběhne (počítej na prstíčkách):

1. i = 0. zapíše se do name[0]
2. i = 1. zapíše se do name[1]
3. i = 2. zapíše se do name[2]
4. i = 3 zapíše se do name[3]
5. i = 4 zapíše se do name[4], ale tak velké to pole není!!
po páté iteraci cyklu se situace změní na i = 5, ukončovací podmínka vrátí false a cyklus neproběhne.

Že zapisuješ do neexistujícího prvku pole, může nastat vyjímka, ale nemusí.

Mohlo by to vypadat takto: 

#define SIZE 4  //pocet jmen, velikost pole

int i;
string name[SIZE];

for(i = 0; i < SIZE; i++)
{
   cout << "Pracak " << i + 1 << "., zadej jmeno :" << endl;
   getline(cin, name[i]);
}

Ještě pozn.: v poli typ jméno[SIZE] je index posledního prvku pole SIZE-1


hu

Nahlásit jako SPAM
IP: 2001:af0:ffe4:85f4:42d:e08b:abff:32aa...–
Zjistit počet nových příspěvků

Přidej příspěvek

×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, 57 hostů

Moderátoři diskuze

 

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