Listázás probléma C-ben?
Üdv, A problémám az volna, hogy az elvileg rendezett adataimat azonosítóra rendezi és a képernyőre kiírja azokat. Nos a rendezést lehet, hogy megcsinálja, de a kiírást biztosan nem. Éppn ezért nem állítom, hogy az utolsó pár sorral van a gond, lehet, hogy az egésszel, amit beillesztettem.
Az általam beírt forráskód egy külső void típusú függvény, amint a mainban egyszerűen listazas(); módon hívok meg egy elágazásban. Remélem jól körbetudtam írni a problémát, ha mégsem kiegészítem.
Íme a kód (kommentben) a jobb átláthatóság kedvéért:
Mivel rövidnek találta a linekt ezért tessék:
void listazas(){
int i,j;
int newazon;
char newname[20],newbeoszt[20],newnem[20];
for (i=0;i<n-1;i++){
for (j=0;j<=n-i-1;j++){
if (tomb[j].azon>tomb[j+1].azon && tomb[j+1].azon!=0){
newazon=tomb[j].azon;
tomb[j].azon=tomb[j+1].azon;
tomb[j+1].azon= newazon;
strcpy(newname,tomb[j].nev);
strcpy(tomb[j].nev, tomb[j+1].nev);
strcpy(tomb[j+1].nev,newname);
strcpy(newbeoszt,tomb[j].beoszt);
strcpy(tomb[j].beoszt, tomb[j+1].beoszt);
strcpy(tomb[j+1].beoszt, newbeoszt);
strcpy(newnem, tomb[j].neme);
strcpy(tomb[j].neme, tomb[j+1].neme);
strcpy(tomb[j+1].neme, newnem);
}
}
}
for(i=1;i<n;i++){
printf("%d\t\t",tomb[n].azon);
printf("%s\t\t",tomb[n].nev);
printf("%s\t\t",tomb[n].beoszt);
printf("%s\t\t",tomb[n].neme);
}
fflush(stdin); getchar(); system ("CLS");
}
Megáll a getchar()-nál? Az fflush(stdin) kb. csak turbo C-nél működik... Ha nem áll meg, akkor simán kiíratod, és aztán letörlöd a képernyőt.
A kód többi részét nem néztem, mert formázatlanul elég áttekinthetetlen.
Nem egy szép kód, viszont a rendezés jó, a kiírató for ciklusnál az "i" ciklus változót nullától indítsd, és aztán a tomb-változót ne az "n"-el címezd, hanem az "i"-vel. Tehát így:
for (i = 0; i<n; i++){
printf("%d\t\t", tomb[i].azon);
printf("%s\t\t", tomb[i].nev);
printf("%s\t\t", tomb[i].beoszt);
printf("%s\t\t", tomb[i].neme);
}
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!