Kezdőoldal » Számítástechnika » Programozás » Miért nem működik ez az...

Miért nem működik ez az egyszerű kód?

Figyelt kérdés

#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;

}



2017. szept. 6. 15:05
 1/8 anonim ***** válasza:
Nem tudom, fordito mit mond?
2017. szept. 6. 15:18
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
68%
Nem tudom mi köze ennek a Pythonhoz, de a for ciklus nem így néz ki C nyelven. A nem működéshez pedig előbb le kéne fordulnia a kódnak.
2017. szept. 6. 15:26
Hasznos számodra ez a válasz?
 3/8 sharkxxx ***** válasza:
100%

#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;

}

2017. szept. 6. 15:27
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

rosszul használod a for ciklust.

for(kezdet, feltétel, ciklusonként változik) { folyamat... }

2017. szept. 6. 15:36
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:

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.

2017. szept. 6. 17:21
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:
Köszi a válaszokat! Azt hittem ha oda írom, hogy a=1 akkor mindig 2-t kapok, de köszi!
2017. szept. 6. 18:37
 7/8 anonim ***** válasza:
Mit akarsz??
2017. szept. 6. 22:12
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:
100%

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)

2017. szept. 7. 09:46
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!