Pkoi ça boucle??? - C++ - Programmation
Marsh Posté le 07-01-2003 à 12:17:58
nummois va de 1 à 12. donc la ligne
printf("%s\n",tab[NumMois]);
est fausse : en C, les indices de tableau vont de 0 à n-1. Tu dois donc écrire :
printf("%s\n",tab[NumMois-1]);
je sais pas si ça résoudra ton souci (j'ai pas le temps de lire tout ton code), mais ça sera toujours ça de pris
Marsh Posté le 07-01-2003 à 12:20:10
un test if c est == et pas = la condition
La ta boucle for(int colonne = 1; colonne <= 7;colonne++) y a colonne qui vaut tj 1 suite au passage du test if (colonne = 1)
Marsh Posté le 07-01-2003 à 12:22:19
j'ai pas regardé ta boucle.
en C, les tableaux sont indexés de 0 à N-1
si tu as 12 mois, déclares un tableau [12] et ainsi les indices de [0] à [11] sont correctement alloués
tu peux également perfectionner ton initialisation de la sorte
static const char* mois[]={ "Janvier", ..., "Decembre"};
-> static : le tableau survit à la fonction: chaque appel de fonction n'a pas besoin de réinitiliser le tableau == + performant
-> const :les chaines littérales "chaine literrales" sont des constantes, on ne doit pas les modifier. l'ajout de ce mot clef permet au compilateur de vérifier qu'elle ne sont pas modifiées
-> mois: c'est un noms de variables plus explicites
->[]: le compilateur se charge lui meme de réserver le bon nombre d'élément
-> { } : initialisation, les éléments de ton tableau prennent un valeur des leur allocation. c'est plus performant et moins long à ecrire de de faire mois[0]="janvier" etc.
Marsh Posté le 07-01-2003 à 12:23:20
VisualC++ a écrit : un test if c est == et pas = la condition |
oui, aussi, j'avais pas fait gaffe
Marsh Posté le 07-01-2003 à 12:23:22
Merci bocou Visual C++, cété ça....
Youpi
merci, merci, merci, tu m'a sové ma vie, SSScool !!!
Marsh Posté le 07-01-2003 à 12:24:17
++Taz a écrit : j'ai pas regardé ta boucle. |
et t'as pas regardé la réponse que je lui ai faite au début non plus
Marsh Posté le 07-01-2003 à 12:26:11
Harkonnen a écrit : |
ben j'etais entrain de faire autre chose, j'ai pris mon temps et tu m'a grillaid
Marsh Posté le 07-01-2003 à 12:10:39
salut à vous tout d'abor
je suis en train d'essayer de me faire un calendrier en C, mais la y'a boucle qui boucle...qui boucle et reboucle...
voilou mon programme, c vilain mais je débute
la fonction decalage me renvoie 3 donc c'est bon,mais ça boucle au nivo du printf en GRAS
void calendrier(int annee)
{
int joursemaine = 0; /* nombre de jour dans une semaine */
int decalagejour;
int nbjours, lejour;
char* tab[11];
tab[0]="JANVIER";
tab[1]="FEVRIER";
tab[2]="MARS";
tab[3]="AVRIL";
tab[4]="MAI";
tab[5]="JUIN";
tab[6]="JUILLET";
tab[7]="AOUT";
tab[8]="SEPTEMBRE";
tab[9]="OCTOBRE";
tab[10]="NOVEMBRE";
tab[11]="DECEMBRE";
for(int NumMois = 1;NumMois <= 12; NumMois++)
{
printf("%s\n",tab[NumMois]);
printf("--------------\n|Lu|Ma|Me|Je|Ve|Sa|Di|\n|" );
nbjours = jour(NumMois, annee);
decalagejour = decalage(nbjours);
lejour = 1;
for(int ligne = 1;ligne <= 5 ;ligne++)
{
for(int colonne = 1; colonne <= 7;colonne++)
{
if((colonne = 1)&&(ligne = 1))
{for(int i = decalagejour; i <= decalagejour;i++)
{printf(" |" );
colonne++;}
}
if(lejour <= nbjours)
{
if(lejour < 10) printf(" " );
printf("%d",lejour);
printf("|" );}
else
{printf(" |" );}
lejour++;
}
printf("\n" );
}
}
}