C tömbrendezés azonosító szerint
2015-12-13T15:55:11+01:00
2015-12-14T12:55:55+01:00
2022-08-18T10:35:52+02:00
mmaattee93
Sziasztok! A feladatom egy adatnyilvántartó program létrehozása. Én egy futballista adatbázis készítettem, ahol az azonosító a mezszám, illetve bekéri még a játékos nevét és születési évszámát. A program úgy-ahogy készen van, már csak rendezni kéne a listázási menüpontot azonosító szerint. Már vagy 10 féleképpen próbáltam, de van hogy, csak az azonosítókat rendezi, volt olyan is hoy jó lett, de utána még beírt a listába még rengeteg karaktert. Most az eredeti programot másolom be, rendezési algoritmus nélkül, tudna valaki segíteni megoldani a problémát? 

#include<stdio.h> #include<stdlib.h> #define MAX 22 int main(){ int mez[MAX], ev[MAX], sorsz, a, b, i, j, k, db=0, kilep, rendez; char nev[MAX][45]; printf("Futballista adatbazis\n\n\n"); do{ printf("[1] Uj jatekos felvetele\n"); printf("[2] Kereses\n"); printf("[3] Modositas\n"); printf("[4] Torles\n"); printf("[5] Listazas\n\n"); printf("Valasszon menupontot(sorszam):"); scanf("%d", &sorsz); switch(sorsz){ /*uj */ case 1: printf("Uj jatekos felvetele\n"); do{ int foglalt=1; do{ printf("\nKerem a jatekos mezszamat: "); scanf("%d", &a); if(db==0) foglalt=0; for(i=0; i<db; i++){ if(mez[i]==a){ foglalt=1; printf("Ezt a mezszamot egy masik jatekos mar viseli\n"); break; } else{ foglalt=0; } } }while(foglalt==1); mez[db]=a; printf("Kerem az uj jatekos nevet: "); scanf("%s", &nev[db]); printf("Kerem az uj evet: "); scanf("%d", &ev[db]); db++; printf("Uj[1]\nKesz[0]"); scanf("%d", &b); }while(b!=0); break; /*kereses */ case 2: printf("Kereses\n"); printf("A keresett jatekos mezszama: "); scanf("%d", &a); for(i=0; i<MAX; i++) { if(mez[i]==a) { printf("Jatekos neve: %s\n", nev[i]); printf("Szuletesi ev: %d\n", ev[i]); k=0; } } if(k!=0){ printf("Nincs ilyen mezben jatszo jatekos"); } break; /*modositas */ case 3: printf("Modositas\n"); printf("A jatekos mezszama: "); scanf("%d", &a); for(j=0; j<MAX; j++){ if(a==mez[j]) { printf("Uj jatekosnev: "); scanf("%s", &nev[j]); printf("Uj jatekos szuletesi eve: "); scanf("%d", &ev[j]); k=0; printf("A modositas megtortent\n"); break; } } if(k!=0){ printf("Nincs ilyen mezben jatszo jatekos"); } break; /*torles */ case 4: printf("Torles\n"); b=0; do{ printf("Jatekos mezszama: "); scanf("%d", &a); for (i=0; i<MAX; i++){ if(a==mez[i]){ printf("A torles nem visszavonhato!\nTorol[1]\nMegse[0] "); scanf("%d", &a); if(a==1){ nev[i], nev[i+1]; ev[i]=ev[i+1]; printf("Torles sikeres\n"); k=0; db--; } break; } } if(k!=0){ printf("Nincs ilyen mezben jatszo jatekos"); } printf("Uj[1]\nKesz[0]"); scanf("%d", &b); }while(b!=0); break; /*listazas */ case 5: printf("Listazas\n"); printf("Mezszam Nev Szuletesi ev\n"); for (i=0; i<db; i++) { printf("%d %s %d\n", mez[i], nev[i], ev[i]); } break; } printf("\nMenu[1]\nKilepes[0] "); scanf("%d", &kilep); }while(kilep!=0); system("pause"); }
Mutasd a teljes hozzászólást!
Ha a struktúra nem használható, akkor a rendezési algoritmusod (pl. buborék) cseréi közben nem csak az egyik, hanem az összes tömbödben cserélned kell.
Mutasd a teljes hozzászólást!

abcd