Salve a tutti,
L'esercizio chiede,a partire da questa struttura
struct Articolo
{
char categoria;
char nome[MAXL];
float costo;
int numConf;
};
struct ScorteMagazzino
{
Articolo scorte[MAXNUM];
int numAr;
}
di scrivere una funzione:
void ordina(ScorteMagazzino* s)
potete spiegarmi i passaggi della soluzione,specialmente cosa fanno i due cicli for?
void ordina(ScorteMagazzino* s)
{ int ordinato=0;
for(int i=0;i<s->numAr-1 && !ordinato;i++)
{ ordinato=1;
for(int j=s->numAr-1;j>=i+1;j--)
if((s->scorte[j].categoria<s->scorte[j-1].categoria)||
(s->scorte[j].categoria==s->scorte[j-1].categoria
&& strcmp(s->scorte[j].nome,s->scorte[j-1].nome)<0))
{ scambia(s->scorte,j,j-1);
ordinato=0;
}
Vi ringrazio.