Kezdőoldal » Számítástechnika » Programozás » C nyelven hogyan kell megcsiná...

C nyelven hogyan kell megcsinálni ezt a feladatot? Minden segítség nagyon sokat számítana :)

Figyelt kérdés

Írj egy programot, amely tartalmaz egy tízelemű, karakterekből álló tömböt, benne Pitagorasz nevének betűível: 'P', 'i', ... Írja ki a program ezt a tömböt a képernyőre, a betűket szóközökkel elválasztva!


Léptesd a tömb összes elemét eggyel az eleje felé. A tömb egyik végén kilépő elem jöjjön be a túlsó végén. Ismételd meg ezt a műveletet tízszer, közben mindig írd ki a tömböt! Az eredmény a jobb oldalon láthatóhoz hasonló kell legyen.


Vigyázz, nem az a feladat, hogy egy trükkös kiírást csinálj! A tömböt kell úgy megváltoztatni, hogy elmozduljanak benne az elemek. A kiírásnak mindig a tömb elejétől a végéig kell haladnia, minden sorban. A kód felépítése tehát ez kell legyen:


CIKLUS 10-szer


CIKLUS a tömb kiírásához... itt csak printf van, nem változik a tömb


CIKLUS a léptetéshez... itt változik a tömb, és nincs printf


CIKLUS VÉGE



2020. szept. 23. 19:38
1 2
 1/13 anonim ***** válasza:
Meddig jutottal el?
2020. szept. 23. 19:48
Hasznos számodra ez a válasz?
 2/13 anonim ***** válasza:
mi oldjuk meg a házifeladatot? :D
2020. szept. 23. 20:07
Hasznos számodra ez a válasz?
 3/13 anonim ***** válasza:

#include <stdio.h>

#include <stdlib.h>


int main()

{

char name[] = {'P', 'i', 't', 'a', 'g', 'o', 'r', 'a', 's', 'z'};

char first;


for (int i = 0; i < 10; i++) {


for (int j = 0; j < sizeof(name)/sizeof(char); j++) {

printf("%c ", name[j]);

}


printf("\n");

first = name[0];


for (int k = 0; k < sizeof(name)/sizeof(char); k++) {


if (k == sizeof(name)/sizeof(char) - 1) {

name[k] = first;

}

else {

name[k] = name[k+1];

}

}

}

return 0;

}

2020. szept. 23. 20:33
Hasznos számodra ez a válasz?
 4/13 A kérdező kommentje:
Nagyon szépen köszönöm!! Nagyon sokat segítettél :)
2020. szept. 23. 20:43
 5/13 anonim ***** válasza:
71%

sizeof(name)/sizeof(char)

Ezt megmondanád, mi az ördög akar lenni? Ilyet nem írunk, mert kiszámíthatatlan. Mondjuk a char az általában fixen 1 méretű (ekkor csak megzavarod az embereket), de ha valamiért nem 1 a mérete, akkor az egész-osztással el is k...d.

Arról nem is beszélve, hogy ha ezt így megjegyzi a tanuló, a végén végképp hülyeségeket csinál majd, mert a sizeof(name) nem minden esetben a tömb elemeinek összméretét adja meg, hanem vannak esetek amikor a pointer méretét. Na akkor meg b......juk.

2020. szept. 23. 22:17
Hasznos számodra ez a válasz?
 6/13 tabaki ***** válasza:
85%

Egy másik próbálkozás:


#include <stdio.h>


int main() {

      char name[] = "Pitagorasz", namesize = sizeof(name) -1;


      for (int i = 0; i < 10; i++) {

            for (int j = 0; j < namesize; j++) printf("%c ", name[j]);

            printf("\n");


            char first = name[0];

            for (int k = 1; k < namesize; k++) name[k - 1] = name[k];

            name[namesize - 1] = first;

      }


      return 0;

}

2020. szept. 23. 23:04
Hasznos számodra ez a válasz?
 7/13 tabaki ***** válasza:
Hüm... Bocs, #22:17, a hozzászólásom független a tiédtől, nem frissítettem a képernyőt, mielőtt beküldtem.
2020. szept. 23. 23:12
Hasznos számodra ez a válasz?
 8/13 A kérdező kommentje:
Nagyon szépen köszönök, minden segítséget!
2020. szept. 24. 07:28
 9/13 anonim ***** válasza:
Jó kis BME:D
2020. szept. 24. 07:40
Hasznos számodra ez a válasz?
 10/13 anonim ***** válasza:

Kedves #5


9-es vagyok. Azért használtam ezt a formát, hogy elkerüljem a hardcoded tömbméretet(amit a feladat ugyan nem kér, de úgy gondoltam egy kezdő számára ugyanúgy kerülendő, mint a kiszámíthatatlanság amit te sérelmeztél). A sizeof(char) C-ben valóban 1, ezt nem tudtam(épp ezért is használtam, így viszont nem indokolt). C++-ban pl. 4. Kérlek mondanál egy példát, hogy mikor lesz sizeof(name)/sizeof(char)kiszámíthatatlan? Illetve kifejtenéd, hogy ha nem 1-et ad vissza miért k*rom el? Egyáltalán, hogy adna vissza mást? A pointerest részt nem értem, nem használtam pointereket. Nem szurkálódásból kérdezem, két éve használtam utoljára C-t és ezt 10 perc alatt gányoltam össze. Örülnék, ha tanulnék valami újat.

2020. szept. 24. 09:49
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, 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!