Miért nem működik ez az egyszerű kód?
#include <stdio.h>
int main(void)
{
/*szorzótábla*/
int a=1, b=1;
for (a<=10; a = a++)
{
for (b <= 10; b = b+1)
{
printf("%3d", a*b);
}
printf("\n");
}
return 0;
}
#include <stdio.h>
int main(void)
{
/*szorzótábla*/
int a, b;
for (a = 1; a <= 10; a++)
{
for (b = 1; b <= 10; b++)
{
printf("%3d", a*b);
}
printf("\n");
}
return 0;
}
rosszul használod a for ciklust.
for(kezdet, feltétel, ciklusonként változik) { folyamat... }
Bezony rosszul használod a ciklust
Pl.: for (var i=1; i < 100; i++) { ... }
Ez ugye deklarál egy "i" változót és megadja a kezdőértékét, majd a pontosvessző után megadod a feltételt, hogy MEDDIG fusson a ciklus. A példában amíg "i" kissebb mint 100
...majd a következő pontosvessző után megadod, hogy miként növekedjen a ciklusban az "i" cilusváltozó értéke. Az i++ azt jelenti, hogy 1-el nőjön ciklusonként.
Hát van néhány hiba, gyakorolj sokat :P
Az egyik gond az a = a++ résszel van. Az a++ megnöveli a értékét 1-gyel, de a-val tér vissza! (A ++a tér vissza a+1-gyel.) Szóval a++ megnöveli a-t, de aztán mivel a = a++, az eredeti értéket kapja meg újra. Tehát sosem nő.
Továbbá a második for ciklusban a b nem állítódik vissza 1-re. És amúgyis a for ciklus zárójeles része 3 részből áll: (b = 1; b <= 10; ++b). Ha valamelyiket kihagyod, akkor is kell a pontosvessző. Pl az elsőnél: for (; a<=10; a = ++a)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!