Problème Language C
Résolu
e.eyore
Messages postés
121
Statut
Membre
-
e.eyore Messages postés 121 Statut Membre -
e.eyore Messages postés 121 Statut Membre -
Bonjour,
J'apprend le C et donc je fait beaucoup de tentative, j'aimerai pourvoir séparer mes "mini codes" lisiblement dans l'invite de commande.
J'ai donc créer cette fonction nommé "ligne".
int ligne(int *nbr); =>header
int ligne(int *nbr)
{
printf("___________%d___________\n\n", *nbr);
*nbr=*nbr+1;
}
=> ccp
(j'ai avant introduit int w=0 dans mon main)
je pose dans main
ligne(&w);
afin que lorsque je la marque la première fois il me face ___________0___________ la seconde fois que je lutilise ___________1___________ la 3ème ___________2___________
au final :
___________0___________
programme0
___________1___________
programme1
___________2___________
programme2 ...etc
Le problème c'est que le nombre reste bloqué à 0, j'ai beau chercher je ne comprend pas pourquoi. Pourrize vous detaillez la reponse afin que je comprenne comment fonctionne le "décompte"
Merci de votre contribution.
J'apprend le C et donc je fait beaucoup de tentative, j'aimerai pourvoir séparer mes "mini codes" lisiblement dans l'invite de commande.
J'ai donc créer cette fonction nommé "ligne".
int ligne(int *nbr); =>header
int ligne(int *nbr)
{
printf("___________%d___________\n\n", *nbr);
*nbr=*nbr+1;
}
=> ccp
(j'ai avant introduit int w=0 dans mon main)
je pose dans main
ligne(&w);
afin que lorsque je la marque la première fois il me face ___________0___________ la seconde fois que je lutilise ___________1___________ la 3ème ___________2___________
au final :
___________0___________
programme0
___________1___________
programme1
___________2___________
programme2 ...etc
Le problème c'est que le nombre reste bloqué à 0, j'ai beau chercher je ne comprend pas pourquoi. Pourrize vous detaillez la reponse afin que je comprenne comment fonctionne le "décompte"
Merci de votre contribution.
Configuration: Windows 7 Firefox 3.5.7
5 réponses
-
Salut,
Normalement, ça doit marcher. Il y a sûrement une erreur ailleurs.
Pourrais-tu poster ton code (juste la partie en question).
Cdlt, -
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int ligne(int *nbr)
{
printf("___________%d___________\n\n", nbr);
*nbr++;
}
int main()
{
int w=0;
ligne(w);
ligne(w);
ligne(w);
ligne(w);
ligne(w);
system("PAUSE");
return 0;
} -
Salut,
dans ta fonction tu dois passer l'adresse de w:
ligne(&w);
Par ailleurs, ta fonction est de type void car elle ne retourne rien...:
void ligne(int *nbr)
{
printf("___________%d___________\n\n", *nbr);
*nbr++;
}
@+ -
Effectivement, il y a plusieurs erreurs.
Voici ton code avec les corrections apportées :#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> int ligne(int *nbr) { printf("___________%d___________\n\n", *nbr); /* rajout du pointeur*/ (*nbr)++; /* rajout des parenthèses sinon tu incrémentes l'adresse mémoire*/ } int main() { int w=0; ligne(&w); /*rajout de l'esperluette (&) pour passer l'adresse mémoire*/ ligne(&w); /*rajout de l'esperluette (&) pour passer l'adresse mémoire*/ ligne(&w); /*rajout de l'esperluette (&) pour passer l'adresse mémoire*/ ligne(&w); /*rajout de l'esperluette (&) pour passer l'adresse mémoire*/ ligne(&w); /*rajout de l'esperluette (&) pour passer l'adresse mémoire*/ return 0; } ~
Cdlt, -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci beaucoup, j'ai bien compris mes erreurs, merci a vous.
@+