Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

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)

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];

for(i=0;i<db;i++)
strcpy(szavak1[i],szavak[i]);

for(i=0;i<strlen(szavak[i]);i++)
{

if(szavak1[i]=='A' || szavak1[i]=='a' || szavak1[i]=='B' || szavak1[i]=='b' || szavak1[i]=='C' || szavak1[i]=='c') printf("2");
if(szavak1[i]=='D' || szavak1[i]=='d' || szavak1[i]=='E' || szavak1[i]=='e' || szavak1[i]=='F' || szavak1[i]=='f') printf("3");
if(szavak1[i]=='G' || szavak1[i]=='g' || szavak1[i]=='H' || szavak1[i]=='h' || szavak1[i]=='I' || szavak1[i]=='i') printf("4");
if(szavak1[i]=='J' || szavak1[i]=='j' || szavak1[i]=='K' || szavak1[i]=='k' || szavak1[i]=='L' || szavak1[i]=='l') printf("5");
if(szavak1[i]=='M' || szavak1[i]=='m' || szavak1[i]=='N' || szavak1[i]=='n' || szavak1[i]=='O' || szavak1[i]=='o') printf("6");
if(szavak1[i]=='P' || szavak1[i]=='p' || szavak1[i]=='Q' || szavak1[i]=='q' || szavak1[i]=='R' || szavak1[i]=='r' || szavak1[i]=='S' || szavak1[i]=='s') printf("7");
if(szavak1[i]=='T' || szavak1[i]=='t' || szavak1[i]=='U' || szavak1[i]=='u' || szavak1[i]=='V' || szavak1[i]=='v') printf("8");
if(szavak1[i]=='W' || szavak1[i]=='w' || szavak1[i]=='X' || szavak1[i]=='x' || szavak1[i]=='Y' || szavak1[i]=='y' || szavak1[i]=='Z' || szavak1[i]=='z') printf("9");
}

for(i=0;i<db;i++)
fprintf(fki,"%s\n",szavak1[i]);

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
(Én csak a Javahoz értek, így lehet hogy hülyeséget írok.)
== helyet .equals kell
0

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.
}
Módosítva: 7 éve
0