Hogyan kéne ezt kivitelezni do while ciklusban?
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.
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.
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) {
...
}
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
Í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.
Itt lesz egy megoldás, de ne nézd meg, amíg nem próbálkoztál vele:
(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.)
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.
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!