Stap 4: Functie algoritme (functie 2)
Functie 2:
vriend void company_sort (product * p, int n)
Vriend functie concept is hier gebruikt, want het is de makkelijkste manier om een gemeenschappelijke functie een deel van alle mogelijke objecten die ooit zullen worden gemaakt.
Deze functie neemt nu het adres van het eerste object in de array van objecten in de pointer variabele p, en ook neemt objecten verklaard in de integer variabele n aantal.
Ik heb nu een andere 2D array op te slaan van alle bedrijfsnamen van de eigenaar erin.
char unique_company [n] [50];
Ik kopieer vervolgens alle gegevens van het object "product_company" naar het. (Eerste afbeelding)
Na dit elimineren ik alle product eigenaar bedrijfsnamen weergegeven die er al in de array zijn door vervangen door het teken "0". Stel dat wil zeggen dat er zijn twee vermeldingen in dit nieuwe karakter array met dezelfde naam (zeggen "Cadbury"), dan vervang ik gewoon het woord "Cadbury", die zich heeft voorgedaan voor de tweede keer met een teken "0". Dus, in wezen op het einde, in dit nieuwe karakter array zal alleen er unieke eigenaar bedrijfsnamen en '0' s. Dit deed ik door het nemen van de eerste vermelding van de nieuwe matrix en controle met elke andere vermelding in de matrix (duplicaten zoeken en af te schaffen). (Tweede afbeelding)
Nu, ik neem elke en iedere niet "0" naam in de nieuwe karakter array en match ze met elke één product eigenaar bedrijfsnamen weergegeven van elk object. Eerst neem ik de eerste niet "0" in de nieuwe matrix een naam geven en het starten van de controle met eigenaar bedrijfsnamen. Wanneer het komt overeen met, maken ik het afdrukken van alle details van het product. Dan ik ga naar de volgende niet "0" naam in de matrix, enzovoort. Dus, tegen het einde van het proces de console(screen) zal hebben alle productgegevens weergegeven eigenaar bedrijf verstandig. (Derde afbeelding)
Dit is de werking van deze functie. Mijn uitleggen vaardigheden zijn niet zo goed, dus ik hoop echt dat de bovenstaande uitleg goed is genoeg :).