FOR - proměnné v cyklu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

FOR - proměnné v cyklu – C / C++ – Fórum – Programujte.comFOR - proměnné v cyklu – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Michael
~ Anonymní uživatel
30 příspěvků
29. 7. 2011   #1
-
0
-

cau, sem uplny zacatecnik

pomoci cyklu for se snazim inicializovat zaznamy v struktuře (dejme tomu zaznam_1 až zaznam_20) 

pokud si je jeste v tomto cyklu hned vypisu, vpohode se zobrazi, ale pokud je chci vypsat mimo cyklus tak se kompilator chová jako kdyby neexistovali...

nevite kde je chyba ?

diky

Nahlásit jako SPAM
IP: 83.240.4.–
Reklama
Reklama
Tom
~ Anonymní uživatel
419 příspěvků
30. 7. 2011   #2
-
0
-

#1 Michael
A nedeklarujes ty struktury (promenne) treba az uvnitr v tom for cyklu? Pak by existovaly jen v bloku toho for cyklu. Nejlepsi asi bude, kdyz sem hodis ukazku kodu.

Nahlásit jako SPAM
IP: 89.103.121.–
Michael
~ Anonymní uživatel
30 příspěvků
30. 7. 2011   #3
-
0
-

no pokud chapu co tim myslis tak asi ano

tady je vytah z kodu:

#include <iostream>

using namespace std;


struct h
{
   char k_1[3];
   char k_2[3];
   int z;
};

int main()
{

int p = 20;
int i = 1;


for ( ;i<=p;i++)
{
   h f_i;

    }
   

  cin.get();
  cin.get();
  return 0;
}

Nahlásit jako SPAM
IP: 83.240.4.–
Michael
~ Anonymní uživatel
30 příspěvků
30. 7. 2011   #4
-
0
-

jak to teda mam udelat abych nemusel vypisovat vsech 20 struktur rucne ?

Nahlásit jako SPAM
IP: 83.240.4.–
m->29+6
Super člen
30. 7. 2011   #5
-
0
-

Použiješ pole štruktúr a budeš ich indexovať premennou.

const int STRUCT_COUNT = 20;

h structs[STRUCT_COUNT] = {...};

// tu naplníš štruktúry niečím užitočným

for(int i=0; i<STRUCT_COUNT; ++i) {
  print(structs[i]); // tento príkaz je abstraktný - treba tlačiť ako to chceš ty
}
Nahlásit jako SPAM
IP: 78.141.66.–
Michael
~ Anonymní uživatel
30 příspěvků
31. 7. 2011   #6
-
0
-

diky vyzkousim, ale asi az zitra... sem se vratil z vikendu.. pak dam vedet jak dopadlo :-)

Nahlásit jako SPAM
IP: 83.240.4.–
Michael
~ Anonymní uživatel
30 příspěvků
1. 8. 2011   #7
-
0
-

tak nepochopeno :-(

neslo by to pls trochu vic popsat... nebo odkaz na  nejakej članek

Nahlásit jako SPAM
IP: 83.240.4.–
Zelenáč0
Posthunter
2. 8. 2011   #8
-
0
-

   

int main()
{
	int p = 20;
	int i = 1;

	for ( ;i<=p;i++)
	{
 		struct h f_i;
	}
}

Takhle deklaruješ strukturu typu h. Ta struktura se bude jmenovat "f_i" (i se nenahradí žádným číslem!) a budeš k ní moct přistupovat jen v těle cyklu for.

int main()
{
	int p = 20;
	int i = 1;
	struct h f_i;

	for ( ;i<=p;i++)
	{
 		f_i.z = i;
	}

	cout << f_i.z << endl;
	for (i=1 ;i<=p;i++)
	{
 		cout << f_i.z << endl;
	}
}

Takhle deklaruješ opět strukturu typu t, která se bude jmenovat "f_i". Budeš k ní moct přistupovat jak v těle funkce main, tak v tělech obou cyklů for.

V prvním běhu prvního cyklu do té struktury do proměnné z uložíš 1, v druhém běhu prvního cyklu do TÉ SAMÉ struktury uložíš 2, atd. až poté, co skončí první cyklus, bude v f_i.z uloženo číslo 20. Zbytek funkce main pak 21krát vypíše číslo 20.

int main()
{
	int p = 20;
	int i = 1;
	struct h zaznam[20];

	for ( ;i<=p;i++)
	{
 		zaznam[i-1].z = i;
	}

	cout << zaznam[0].z << endl; // vypíše 1
	for (i=1 ;i<=p;i++)
	{
 		cout << zaznam[i-1].z << endl;
	}
}

Tady deklaruješ pole struktur typu t, které se jmenuje "zaznam". Těch struktur je 20, k první přistupuješ zaznam[0], ke druhé zaznam[1]... ke dvacáté zaznam[19].

V prvním běhu prvního cyklu se i nahradí číslem 1-> do položky z první struktury (zaznam[1-1] = zaznam[0]) uložíš jedničku. Ve druhém běhu prvního cyklu se i nahradí 2 -> do druhé struktury (zaznam[2-1] = zaznam[1]) uložíš dvojku. atd.

Po skončení prvního cyklu bude tedy zaznam[0].z = 1, zaznam[1].z = 2 ... zaznam[19].z roven 20. A druhý cyklus vypíše čísla od 1 do 20.

Nahlásit jako SPAM
IP: 80.250.5.–
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, 101 hostů

Moderátoři diskuze

 

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