codice:
#include <stdio.h>
#define n 100
struct prenotazione{
struct cog_nome{
char cognome[15];
char nome[15];
}cog;
int giorno;
char mese[10];
int stanza;
int notti;
}preno[n], pre[n];
int main()
{
int i, j, k, v, y, app;
char buffer[15];
FILE *cfPtr;
if ((cfPtr = fopen("clienti.dat", "w")) == NULL ) {
printf("Il file non può essere aperto.\n");
} else {
i = 0;
printf("Inserisci cognome, nome, giorno e mese di inizio permanenza, nmero stanza e numero notti : \n");
printf("Inserisci EOF per terminare\n");
scanf(" %s%s%d%s%d%d\n", preno[i].cog.cognome, preno[i].cog.nome, &preno[i].giorno, preno[i].mese, &preno[i].stanza, &preno[i].notti);
fprintf(cfPtr, "%35s", "PRENOTAZIONI\n\n");
fprintf(cfPtr, "%10s %10s %10s %10s %8s %7s", "COGNOME", "NOME", "GIORNO", "MESE", "STANZA", "NOTTI\n");
fprintf(cfPtr, "%10s %10s %10d %10s %8d %6d\n", preno[i].cog.cognome, preno[i].cog.nome, preno[i].giorno, preno[i].mese, preno[i].stanza, preno[i].notti);
while (!feof(stdin)) {
i++;
scanf(" %s%s%d%s%d%d\n", preno[i].cog.cognome, preno[i].cog.nome, &preno[i].giorno, preno[i].mese, &preno[i].stanza, &preno[i].notti);
fprintf(cfPtr, "%10s %10s %10d %10s %8d %6d\n", preno[i].cog.cognome, preno[i].cog.nome, preno[i].giorno, preno[i].mese, preno[i].stanza, preno[i].notti);
}
fclose(cfPtr);
}
printf("%d", i);
printf("\n\n");
printf("%35s", "PRENOTAZIONI\n\n");
printf("%10s%10s%10s%10s%8s%7s", "COGNOME", "NOME", "GIORNO", "MESE", "STANZA", "NOTTI\n");
for ( j = 0; j <= i; j++ ) {
printf("%10s%10s%10d%10s%8d%6d\n", preno[j].cog.cognome, preno[j].cog.nome, preno[j].giorno, preno[j].mese, preno[j].stanza, preno[j].notti);
}
j = 0;
for ( k = 0; k <= i; k++ ) {
if ( preno[k].stanza == 12 && strcmp(preno[k].mese, "aprile") == 0) {
strcpy(pre[j].cog.cognome, preno[k].cog.cognome);
strcpy(pre[j].cog.nome, preno[k].cog.nome);
pre[j].giorno = preno[k].giorno;
strcpy(pre[j].mese, preno[k].mese);
pre[j].stanza = preno[k].stanza;
pre[j].notti = preno[k].notti;
j++;
}
}
y = i;
printf("\n\n");
printf("%38s", "PRENOTAZIONI APRILE DELLA STANZA 12\n\n");
printf("%10s%10s%10s%10s%8s%7s", "COGNOME", "NOME", "GIORNO", "MESE", "STANZA", "NOTTI\n");
for ( i = 0; i < j; i++ ) {
printf("%10s%10s%10d%10s%8d%6d\n", pre[i].cog.cognome, pre[i].cog.nome, pre[i].giorno, pre[i].mese, pre[i].stanza, pre[i].notti);
}
for ( k = 0; k < y; k++ ) {
for ( j = k + 1; j <= y; j++ ) {
if ( preno[k].stanza == 12 && strcmp(preno[k].mese, "aprile") == 0 && preno[j].stanza == 12 && strcmp(preno[j].mese, "aprile") == 0) {
if ( preno[k].giorno > preno[j].giorno) {
strcpy(buffer, preno[k].cog.cognome);
strcpy(preno[k].cog.cognome, preno[j].cog.cognome);
strcpy(preno[j].cog.cognome, buffer);
strcpy(buffer, preno[k].cog.nome);
strcpy(preno[k].cog.nome, preno[j].cog.nome);
strcpy(preno[j].cog.nome, buffer);
app = preno[k].giorno;
preno[k].giorno = preno[j].giorno;
preno[j].giorno = app;
strcpy(buffer, preno[k].mese);
strcpy(preno[k].mese, preno[j].mese);
strcpy(preno[j].mese, buffer);
app = preno[k].stanza;
preno[k].stanza = preno[j].stanza;
preno[j].stanza = app;
app = preno[k].notti;
preno[k].notti = preno[j].notti;
preno[j].notti = app;
}
}
}
}
printf("\n\n");
printf("%50s", "PRENOTAZIONI DELLA STANZA 12 NEL MESE DI APRILE IN ORDINE CRESCENTE DI DATA\n\n");
printf("%10s%10s%10s%10s%8s%7s", "COGNOME", "NOME", "GIORNO", "MESE", "STANZA", "NOTTI\n");
for ( k = 0; k <= y; k++ ) {
printf("%10s%10s%10d%10s%8d%6d\n", preno[k].cog.cognome, preno[k].cog.nome, preno[k].giorno, preno[k].mese, preno[k].stanza, preno[k].notti);
}
return 0;
}
precisamente in questa parte
codice:
for ( k = 0; k < y; k++ ) {
for ( j = k + 1; j <= y; j++ ) {
if ( preno[k].stanza == 12 && strcmp(preno[k].mese, "aprile") == 0 && preno[j].stanza == 12 && strcmp(preno[j].mese, "aprile") == 0) {
if ( preno[k].giorno > preno[j].giorno) {
strcpy(buffer, preno[k].cog.cognome);
strcpy(preno[k].cog.cognome, preno[j].cog.cognome);
strcpy(preno[j].cog.cognome, buffer);
strcpy(buffer, preno[k].cog.nome);
strcpy(preno[k].cog.nome, preno[j].cog.nome);
strcpy(preno[j].cog.nome, buffer);
app = preno[k].giorno;
preno[k].giorno = preno[j].giorno;
preno[j].giorno = app;
strcpy(buffer, preno[k].mese);
strcpy(preno[k].mese, preno[j].mese);
strcpy(preno[j].mese, buffer);
app = preno[k].stanza;
preno[k].stanza = preno[j].stanza;
preno[j].stanza = app;
app = preno[k].notti;
preno[k].notti = preno[j].notti;
preno[j].notti = app;
}
}
}
}
printf("\n\n");
printf("%50s", "PRENOTAZIONI DELLA STANZA 12 NEL MESE DI APRILE IN ORDINE CRESCENTE DI DATA\n\n");
printf("%10s%10s%10s%10s%8s%7s", "COGNOME", "NOME", "GIORNO", "MESE", "STANZA", "NOTTI\n");
for ( k = 0; k <= y; k++ ) {
printf("%10s%10s%10d%10s%8d%6d\n", preno[k].cog.cognome, preno[k].cog.nome, preno[k].giorno, preno[k].mese, preno[k].stanza, preno[k].notti);
}
non capisco non mi esegue le condizioni e non mi metta in ordine di giorno..