Ciao a tutti, avrei un problema con il seguente programma scritto in linguaggio C, questo programma ha il compito di scrivere la data successiva a quella che verrà inserita all'interno di essa.
Questo è il programma:
#include <stdio.h>
#include <stdbool.h>
struct data
{
int giorno;
int mese;
int anno;
} oggi, domani;
bool è_bisestile (struct data x)
{
bool bisestile;
if (x.anno % 4 == 0 && x.anno % 100 != 0 || x.anno % 400 == 0)
bisestile = true;
else
bisestile = false;
return bisestile;
}
int determina_giorni_mese (struct data x)
{
int giorni;
const int giorni_mese[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (x.mese = 2 && è_bisestile (x) = true)
giorni = 29;
else
giorni = giorni_mese[x.mese];
return giorni;
}
struct data aggiorna_data (struct data x)
{
if (x.giorno != determina_giorni_mese (x))
{
++x.giorno;
x.mese = x.mese;
x.anno = x.anno;
}
else
{
if (x.giorno = 31 && x.mese = 12)
{
x.giorno = 1;
x.mese = 1;
++x.anno;
}
else
{
x.giorno = 1;
++x.mese;
x.anno = x.anno;
}
return x;
}
int main (void)
{
printf ("Inserire data odierna: ");
scanf ("%i/%i/%i", &oggi.giorno, &oggi.mese, &oggi.anno);
domani = aggiorna_data (oggi);
printf ("Domani sarà il %i/%i/%i\n", &domani.giorno, &domani.mese, &domani.anno);
return 0;
}
Questo è l'errore che mi da il compilatore:
programma.c:13:1: error: stray ‘\303’ in program
programma.c:13:1: error: stray ‘\250’ in program
programma.c: In function ‘determina_giorni_mese’:
programma.c:31:2: error: stray ‘\303’ in program
programma.c:31:2: error: stray ‘\250’ in program
programma.c:31:37: error: lvalue required as left operand of assignment
programma.c: In function ‘aggiorna_data’:
programma.c:50:31: error: lvalue required as left operand of assignment
programma.c: In function ‘main’:
programma.c:75:2: warning: format ‘%i’ expects argument of type ‘int’, but argument 2 has type ‘int *’ [-Wformat]
programma.c:75:2: warning: format ‘%i’ expects argument of type ‘int’, but argument 3 has type ‘int *’ [-Wformat]
programma.c:75:2: warning: format ‘%i’ expects argument of type ‘int’, but argument 4 has type ‘int *’ [-Wformat]
programma.c: In function ‘aggiorna_data’:
programma.c:78:1: error: expected declaration or statement at end of input
Dove ho sbagliato?
Grazie mille in anticipo.