Divné chování for cyklů – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Divné chování for cyklů – C / C++ – Fórum – Programujte.comDivné chování for cyklů – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Blinder
~ Anonymní uživatel
3 příspěvky
5. 4. 2013   #1
-
0
-

Ahoj,

snažím se vytvořit jednoduchou matici 2x2 a naplnit jí hodnotami 1, 2, 3, 4. Používám k tomu kód níže. Problém ale je, že při zpětném vypsání se mi do matice uloží pouze hodnoty 3, 4, 3, 4. Přitom kontrolní výpis mi v každém kroku zobrazí, že se do matice uložila správná hodnota....

int k = 0;
int i;
for (i = 0; i < f_height; i++)
{
	int j;
	for (j = 0; j < f_width; j++)
	{
		k++;
		matrix [i][j] = k;
		printf("%i\t\n",matrix[i][j]);
	}
}
Nahlásit jako SPAM
IP: 92.62.224.–
Reklama
Reklama
lukber0
Newbie
5. 4. 2013   #2
-
0
-

Kód se mi zdá být v pořádku. Tím kontrolním výpisem myslíš toto: printf("%i\t\n",matrix[i][j]);? Nebo ten děláš někde jinde. Pokud ho máš jinde mrkni se jestli nemáš chybu tam. Jinak asi nejlépe prodebugovat.

Nahlásit jako SPAM
IP: 193.85.250.–
KIIV+42
God of flame
5. 4. 2013   #3
-
0
-

taky predpokladam ze bude blbe to vypsani

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Blinder
~ Anonymní uživatel
3 příspěvky
5. 4. 2013   #4
-
0
-

Kontrolním výpisem jsem myslel to printf("%i\t\n",matrix[i][j]). Přičemž v tomto výpisu se mi vše zobrazuje v pořádku.

Když chci ale vypsat celou matici 2x2, třeba tímto kódem:

printf("=%i=\n", matrix[0][0]);
printf("=%i=\n", matrix[0][1]);
printf("=%i=\n", matrix[1][0]);
printf("=%i=\n", matrix[1][1]);

tak už se mi vypíše špatně, tedy 3, 4, 3, 4. Stejně tak, kdybych to nechal vypsat přes dva for cykl.. Zkoušel jsem to přeložit na jiném překladači a furt stejné..

Nahlásit jako SPAM
IP: 92.62.224.–
KIIV+42
God of flame
5. 4. 2013   #5
-
0
-

asi to sem hod cely.. pak uz leda bys prepisoval nejaky kusy pameti mimo

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Blinder
~ Anonymní uživatel
3 příspěvky
5. 4. 2013   #6
-
0
-

   

void create_matrix ()
{
	
	first_matrix [2][2];
	first_matrix [0][0] = '\0';
	
	int k = 0;
	int i;
	char help [MAX_ELEMENT];
	for (i = 0; i < 2; i++)
	{
		int j;
		for (j = 0; j < 2; j++)
		{
			k++;
			printf("!!%i!!\t",matrix[i][j]);
			printf("Zadejte hodnotu pozice [%i][%i]: ", i, j);
			matrix [i][j] = k;
			printf("%i\t\n",matrix[i][j]);
		}
	}
	
	printf("=%i=\n", matrix[0][0]);
	printf("=%i=\n", matrix[0][1]);
	printf("=%i=\n", matrix[1][0]);
	printf("=%i=\n", matrix[1][1]);
}

A dvourozměrné pole mám definovaný na začátku programu, jako globální proměnnou.

int matrix [DEF][DEF];

A to DEF pak takto.

 

#define DEF 0

Nahlásit jako SPAM
IP: 92.62.224.–
hlucheucho+10
Posthunter
5. 4. 2013   #7
-
0
-

takže DEF je 0. To znamená, že máš int matrix[0] [0];  dvourozměrné pole s nulovou velikostí? Jaký smysl má first_matrix [2][2]; ?

hu

Nahlásit jako SPAM
IP: 188.95.60.–
hlucheucho+10
Posthunter
5. 4. 2013   #8
-
0
-

 asi potřebuješ toto:

#define DEF 2  //pole 2x2

int matrix [DEF][DEF];

k čemu je

char help [MAX_ELEMENT];

?

hu

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

Podobná vlákna

Divné chování if-else — založil d.mostek

Fmod.. divne chovani?? — založil cp.Hook

Divné chování polí — založil Seph

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ý