Kezdőoldal » Számítástechnika » Programozás » Hogyan kéne ezt kivitelezni...

Hogyan kéne ezt kivitelezni do while ciklusban?

Figyelt kérdés
Eléggé kezdő vagyok a programozásban, szóval simán előfordulhat, hogy butaságot mondok vagy valami hasonló. Szóval C-ben kell programoznom és van is egy szép do while ciklusom, ami nagyjából működik is. Itt jön elő a probléma. Ha futtatom a programot akkor ennek a ciklusnak annyiszor kéne lefutnia, amekkora számot a felhasználó megadott mínusz kettő. És egyszerűen nekem fogalmam sincsen, hogyan csináljam meg ezt. Minden más kész a programban csak ez nem. Vagy csak egyszer fut le a program, vagy pedig örökké futna, ezt a kettőt tudtam elérni, de hát értelemszerűen egyik se túlságosan jó nekem. Van esetleg valamilyen tippetek, hogyan lehetne ezt megoldani?

2021. szept. 25. 13:27
 1/9 Pelenkásfiú ***** válasza:
Másold be a kódrészletet, hogy lássuk, mit ronthattál el!
2021. szept. 25. 13:32
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:

do

{

for (f=0; ++f) {


if(y>1) {


for(k=0; k<1; ++k) {


printf("x");


for(g=1; g<y-1; ++g) {


printf(".");

}


for(l=y-1; l<y; ++l) {


printf("x");

printf("\n");

}



}


}

while (y);


És ugye itt kéne a végén, hogy mit írjak a while-hoz, mert már egy csomó variációt kipróbáltam és egyik se működik.

2021. szept. 25. 13:37
 3/9 Pelenkásfiú ***** válasza:

Hú. :)

Nálam a kapcsos zárójelek száma sem stimmel.

Leírod az egész feladatot?

Valószínűleg nem kell ennyi ciklus.

2021. szept. 25. 13:50
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:
100%

Ezt miért do-while ciklussal akarod? Erre for ciklus való. Ha pl. x tárolja a felhasználó által megadott számot, akkor például az alábbi ciklus pont x-2-szer fut le:

x -= 2;

for (;x > 0; --x) {

...

}

2021. szept. 25. 13:53
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:

Hát igazából fogalmam sincsen, hogy miért pont ezzel akarom megcsinálni. Eredetileg a for ciklussal próbálkoztam, de nekem azzal valahogy nem sikerült, ezzel meg nagyjából összejött a dolog. A kapcsos zárójelek tényleg nem stimmeltek, egy korábbi próbálkozásból ott maradt egy felesleges.

A feladat az amúgy így szól:

Írj programot, mely beolvas egy pozitív egész számot, és egy ekkora oldalhosszúságú, x-ekkel határolt, pontokkal kitöltött négyzetet rajzol a standard kimenetre a következő módon:



Input: 4

Output:

xxxx

x..x

x..x

xxxx

2021. szept. 25. 14:02
 6/9 Pelenkásfiú ***** válasza:

Írj ki "n" darab x-et! Ez egy for ciklus.

Sortörés.


Utána "n-2"-szer futtasd azt, hogy: (for)

- kiírsz egy x-et,

- kiírsz "n-2" pontot. (for)

- kiírsz egy x-et

- sortörés


Ismét "n" darab x. (for)


Tehát összesen 4 for ciklus, 2 van egymásba ágyazva.

Nyugodtan használhatod mindhárom külsőnél az "i" változót, annál, ami benne van a másikban, ott meg a "j"-t mondjuk.

2021. szept. 25. 14:09
Hasznos számodra ez a válasz?
 7/9 Pelenkásfiú ***** válasza:

Itt lesz egy megoldás, de ne nézd meg, amíg nem próbálkoztál vele:

[link]


(Egyébként újabb nyelvekben egyszerűen ki lehet íratni egy karaktert/stringet egymás után többször, de itt most úgy is a ciklusok gyakorlása a cél.)

2021. szept. 25. 14:15
Hasznos számodra ez a válasz?
 8/9 A kérdező kommentje:
Nagyon szépen köszönöm a segítséget, most már összejött a dolog.
2021. szept. 25. 14:29
 9/9 Pelenkásfiú ***** válasza:

Ha még van kedved "játszani" vele, akkor lehetne kicsit optimalizálni:

Amikor megcsinálod az első "x....x" sort, akkor ezt elteheted egy változóba és ezt írod ki összesen n-2-szer.

Így nincs is egymásba ágyazott ciklus.

2021. szept. 25. 14:34
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!