Problème en avec tableau

Fermé
yuri - 22 nov. 2007 à 17:22
 djleop - 22 nov. 2007 à 17:29
Bonjour, voici mon programme qui calcule le nombre de jour passé depuis sa naissance , jusqu'à aujourd'hui. je dois le refaire en utilisant un tableau d'entier qui comprend le nombre de jour pour chaque mois!
je bloque vraiment donc si quelqu'un peut m'aidez! merci

#include <stdio.h>
#include <stdlib.h>

void main (void)


{
int total,totalnaissance,totaljour,datenaissance,moisnaissance,anneenaissance,datejour,moisjour,anneejour;

printf("entrez date de naissance:");
scanf("%d",&datenaissance);

printf("entrez mois de naissance:");
scanf("%d",&moisnaissance);

printf("entrez annee de naissance:");
scanf("%d",&anneenaissance);

printf("entrez date du jour:");
scanf("%d",&datejour);

printf("entrez mois du jour:");
scanf("%d",&moisjour);

printf("entrez annee du jour:");
scanf("%d",&anneejour);


/* totaljour= (anneejour*365) + datejour + (moisjour*totalmois ) */




if (mois == 1)
{
totalmois= 31;
}

else

if (mois == 2)

{
totalmois= 59;

}

else


if (mois == 3)

{

totalmois= 90;

}

else


if (mois == 4)

{
totalmois= 120;
}


else


if (mois == 5)

{
totalmois= 151;
}
else


if (mois == 6 )

{
totalmois= 181;
}
else


if (mois == 7)

{
totalmois= 212;

}
else


if (mois == 8)

{
totalmois= 243;
}
else


if (mois == 9)

{
totalmois= 273;
}
else


if (mois == 10)

{
totalmois= 304;
}
else


if (mois == 11)

{
totalmois= 334;
}
else


if (mois == 12)

{
totalmois= 365;
}








/* totalnaissance= (anneenaissance*365) + datenaissance + (moisnaissance*totalmois ) */




if (mois == 1)
{
totalmois= 31;
}

else

if (mois == 2)

{
totalmois= 59;

}

else


if (mois == 3)

{

totalmois= 90;

}

else


if (mois == 4)

{
totalmois= 120;
}


else


if (mois == 5)

{
totalmois= 151;
}
else


if (mois == 6 )

{
totalmois= 181;
}
else


if (mois == 7)

{
totalmois= 212;

}
else


if (mois == 8)

{
totalmois= 243;
}
else


if (mois == 9)

{
totalmois= 273;
}
else


if (mois == 10)

{
totalmois= 304;
}
else


if (mois == 11)

{
totalmois= 334;
}
else


if (mois == 12)

{
totalmois= 365;
}


/* total = totaljour - totalnaissance */

printf(" vous avez %d jour,total");





}

1 réponse

Bonjour,
Je pense qu'il est necessaire de revoir le code.

La logique de calcul doit être dfférente !

il faut d'abord determiner combien d'année depuis la date de naissance. Ca doit être assez simple.

Ensuite, calcul du nombre de mois :
nombre de mois = 12*(nombre d'année-1);
nombre de mois = nombre de mois + numéro de mois d'aujourd'hui

et pour le nombre de jour, en grossier on multipie le nombre de mois par 30.
Sinon, un tableau ou on stocke le nombre de jour pour chaque mois (28 pour Février). Ce qui donne un nombre de jour plus précis.

Pour calculer le nombre exact .... A voir des librairies spéciales de C++, je ne connais pas trop.
0