Kezdőoldal » Számítástechnika » Programozás » Tudnátok segíteni a programozá...

Tudnátok segíteni a programozás házimban? (C)

Figyelt kérdés

A feladat: A titkosito fuggveny parametere ket karaktertomb, egy bemenet es egy

kimenet. A titkositando uzenet a bemenetben van, a titkositottat a kimenetbe

kell elkesziteni. A fuggveny szamolja meg, hogy a bemenet szavai hany

betusek, es ezeket a szamokat írja sorrendet tartva a kimenet elejere. Az

egyszeruseg kedveert minden bemenet maximum 9 betus szavakat tartalmaz. Egy

szonak szamitunk minden karaktert ket space kozott. (Tehat pl. az irasjelek

a szohoz tartoznak. A maganyos karakterek, mint pl. a gondolatjel, egybetus

szonak szamitanak.) Ez utan a fuggveny a bemenet minden szavat forditsa meg,

es space nelkul, sorrendet tartva irja be a kimenetbe.


A kód amit nem értek miért nem működik:


void titkosit(char bemenet[], char kimenet[]) {

int bemenetHossza = 0;

int szoszam = 0;

int szohossz[99];

int a = 0;

int b = 0;

for (int i = 0; bemenet[i] != '\0'; i++) {

b++;

bemenetHossza++;

if (bemenet[i] == ' ') {

szoszam++;

a++;

b = 0;

} else {

szohossz[a] = b;

}

}

int spaceNelkuliBemenetHossz = bemenetHossza - szoszam + 2;

char spaceNelkul[spaceNelkuliBemenetHossz];

int c = 0;

for (int i = 0; bemenet[i] != '\0'; i++) {

if (bemenet[i] != ' ') {

spaceNelkul[i-c] = bemenet[i];

} else {

c++;

}

}


char forditott[spaceNelkuliBemenetHossz];

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

for (int j = 0; spaceNelkul[j] < szohossz[i]; j++) {

forditott[spaceNelkuliBemenetHossz - j] = spaceNelkul[j];

}

}


for (int i = 0; i < spaceNelkuliBemenetHossz + szoszam; i++) {

if (i <= szoszam) {

kimenet[i] = szohossz[i] + '0';

} else {

kimenet[i] = forditott[i];

}

}

}


A számokat gyönyörűen kiírja az elejére, de szöveget már egyáltalán nem ír. Szerintetek miért?


2019. okt. 20. 09:38
 1/1 anonim ***** válasza:

A kódot nem értelmeztem, és nem néztem meg működés szempontjából, de abban biztos vagyok, hogy c-ben ilyen nincs: char spaceNelkul[spaceNelkuliBemenetHossz];

Ha ilyet akarsz csinálni, dinamikus memóriakezelés kell neked, azaz malloc-free páros.

2019. okt. 20. 17:04
Hasznos számodra ez a válasz?

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!