Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!
Ez a kód kiiraatás miértnem működik? (c,programozás)
hívŐ
kérdése
494
Ki kell iratni számkódokba az egyik tömben lévő szavakat.
Ahogy én csináltam a következő:
char szavak1[N][M];
természetesen dekraláltam az fkit és meg is nyitottam.
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Középiskola / Informatika
Válaszok
2
Alex
válasza
(Én csak a Javahoz értek, így lehet hogy hülyeséget írok.)
== helyet .equals kell
0
hívŐ:
Sajnos nem tudom mi az az .equals :/ , ez "==" azt jelenti magyarul ,hogy ha szavak1[i]edik eleme egyenlőe AVal akkor 2est ír ki
7 éve0
Alex:
Tudom, csak javánál Stringeket és Charokat nem lehet ==-vel vizsgálni
7 éve0
bongolo:
C-ben char-okat is lehet, nincs olyan, hogy .equals
7 éve0
bongolo:
Persze itt stringet hasonlít char-hoz, ami nem jó, de az más kérdés.
7 éve0
bongolo{ }
megoldása
Nem látszik a teljes kód, nem tudom, hogy mi a szavak tömb, meg mit csinálsz utána az egésszel, de feltételezem, hogy valami ilyesmire gondolhattál:
Az eleje helyett ez kell:
char szavak1[M]; // csak 1 dimenziós tömb kell
for (j=0; j<db; j++) // i helyett j, ami szintén int
{ // kell egy nyitó zárójel, hogy minden a ciklusban legyen
strcpy(szavak1, szavak[j]); // a j-edik szót bemásoljuk a szavak1-be
for (i=0; i<strlen(szavak1); i++)
{
... a közepe jó, itt van a sok if és printf
}
printf("\n"); // a következő szó kódjai külön sorba íródjanak
} // kell még egy csukó zárójel, a fenti párja
// for(i=0;i<db;i++)
// fprintf(fki,"%s\n",szavak1[i]);
// Ennek a kettőnek nem tudom, mi az értelme. Kihagytam.
--------------
A sok if helyett lehet esetleg switch-et is hasznalni:
switch (szavak1[i]) {
case 'A': case 'a': case 'B': case 'b': case 'C': case 'c': printf("2"); break;
case 'D': case 'd': case 'E': case 'e': case 'F': case 'f': printf("3"); break;
... stb.
}