Kezdőoldal » Számítástechnika » Programozás » Listázás probléma C-ben?

Listázás probléma C-ben?

Figyelt kérdés

Ü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:



2015. febr. 28. 17:24
 1/9 A kérdező kommentje:

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");

}

2015. febr. 28. 17:25
 2/9 anonim ***** válasza:

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.

2015. febr. 28. 17:28
Hasznos számodra ez a válasz?
 3/9 A kérdező kommentje:
Nem az a gondja :-/ másold be pastebin . com -ra. annak a linkjét akartam egyből küldeni, csak nem engedte.
2015. febr. 28. 17:33
 4/9 anonim ***** válasza:

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

}

2015. febr. 28. 17:49
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:
Módosítottam de még mindig semmi :(
2015. febr. 28. 18:04
 6/9 anonim ***** válasza:
Ha bemásolom, az nem fogja az elveszett karaktereket visszarakni. Linkeld be egy nem tiltott alternatíván. (pl. pastie.org)
2015. febr. 28. 18:08
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:
2015. febr. 28. 18:12
 8/9 anonim ***** válasza:
Nem szúr szemet semmi. A tömb definícióját és feltöltését is megmutatod?
2015. febr. 28. 18:15
Hasznos számodra ez a válasz?
 9/9 A kérdező kommentje:
Elküldtem privibe :)
2015. febr. 28. 18:23

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!