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!

Miért nem jó az algoritmus? (c)

318
Írtam egy algoritmust aztonban mindig megjeleníti a "különben" (else) utáni feltételt is és nem is 1x írja ki .. ha meg zárójelek közzé rakom akkor csak az 1iket írja ki de azt 100..
Min kellene változtani?

Az algoritmus:

char nev[N];

printf("\kerem a nevet: ");
scanf("%s",&nev);

for(i=0;i<db;i++)
{
if(strcmp(tanc[i],nev)==0 && strcmp(lany[i],"Vilma")==0)
{
printf("A %s bemutatojan Vilma parja %s volt.\n",nev,fiu[i]);
}
else
{
printf("a");
}

}
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Középiskola / Informatika

Válaszok

3
...
{
printf("A %s bemutatojan Vilma parja %s volt.\n",nev,fiu[i]);
} else printf("a");
}

Talán így?

Módosítva: 7 éve
0

Nekem úgy működik, ahogy elvárható.
- Ha a beírt 'nev' nem azonos egyik 'tanc'-cal sem, akkor sokszor kiírja az a-t.
- Ha a 'nev' azonos valamelyik tánccal, de nem Vilma a tánchoz tartozó lány, akkor is csak a betűket ír ki sokszor.
- Ha a 'nev' azonos egy tánccal és Vilma mellette a lány, akkor kiírja a fiú nevét, és előtte illetve utána is sokszor kiírja az a betűket.

Hogyan máshogy kellene működnie?
Ha nem akarod, hogy kiírja az a betűket, ne tedd az else-be a printf-et.

Esetleg küldd el nekem a teljes programot, hátha valahol más részében van hiba.
0

Valószínű ilyenre gondolhattál:

if (strcmp(tanc[i],nev)==0)
{
if (strcmp(lany[i],"Vilma")==0)
printf("A %s bemutatojan Vilma parja %s volt.\n",nev,fiu[i]);
else
printf("a");
}
0