codice:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define N 100 //massimi maialini
typedef struct {
int giorno;
int mese;
int anno;
} Data;
typedef struct {
char nome[20];
Data datanascita;
float peso;
int popolarità;
} Maialino;
typedef struct {
int numero_maialini;
Maialino pigs[N];
} Allevamento;
int confronta(Data, Data);
int main()
{
Allevamento a = {7,
"Porky Pig", {12, 7, 1936}, 33.50, 85,
"Miss Piggy", {17, 12, 1974}, 23.95, 170,
"Babe", {23, 1, 1996}, 18.80, 250,
"Pumbaa", {14, 11, 1994}, 79.99, 1690,
"Peppa", {31, 5, 2004}, 12.15, 8500,
"Hamm", {12, 7, 1968}, 19.05, 290,
"Piglet", {22, 4, 1926}, 9.30, 1260
};
int i = 0;
int j = 0;
Maialino * ord_alfabetico[N] = { NULL };
Maialino * ord_data[N] = { NULL };
Maialino * ord_peso[N] = { NULL };
Maialino * ord_pop[N] = { NULL };
//stampa allevamento così com'è
for (i = 0; i < a.numero_maialini; i++)
{
printf("Il maialino %s, ", a.pigs[i].nome); //nome maialino
printf("nato il %d/%d/%d, ", a.pigs[i].datanascita.giorno, a.pigs[i].datanascita.mese, a.pigs[i].datanascita.anno); //data nascita maialino
printf("pesa %.2f e ha ", a.pigs[i].peso ); //peso maialino
printf("popolarita' %d ", a.pigs[i].popolarità); //nome maialino
printf("\n");
}
//stampa ordine alfabetico
ord_alfabetico[1] = &a.pigs[1];
printf("%s", ord_alfabetico[1]);
for (i = 0; i < a.numero_maialini-1; i++)
{
if (strcmp(a.pigs[i].nome, a.pigs[i + 1].nome) < 0)
{
ord_alfabetico[j] = &a.pigs[i];
j++;
}
else if (strcmp(a.pigs[i].nome, a.pigs[i + 1].nome) > 0)
{
//mi perdo
}
}
//stampa ordine data
//stampa ordine peso
//stampa ordine popolarità
_getch();
return 0;
}
int confronta(Data d1, Data d2)
{
int ris = 0;
if (d1.anno > d2.anno)
{
ris = -1;
}
else if (d1.anno == d2.anno)
{
if (d1.mese > d2.mese)
{
ris = -1;
}
else if (d1.mese < d2.mese)
{
ris = 1;
}
else if (d1.mese == d2.mese)
{
if (d1.giorno < d2.giorno)
{
ris = 1;
}
else if (d1.giorno > d2.giorno)
{
ris = -1;
}
else if (d1.giorno == d2.giorno)
{
ris = 0;
}
}
}
else if (d1.anno < d2.anno)
{
ris = 1;
}
return ris;
}
Sto facendo un esercizio per il quale mi si chiede di, avendo una struttura Allevamento con N maialini in ordine casuale, creare 4 array di puntatori a ciascun maialino, e ordinare questi array di puntatori in vari ordini.