#define MAX 2
int main(void) {
int i;
joueur info[MAX];
for (i = 0; i < MAX; i++) {
printf("nom joueur %d :\n", i+1);
scanf("%s", info[i].nom);
printf("prenom joueur %d :\n", i+1);
scanf("%s", info[i].prenom);
}
for (i = 0; i < MAX; i++)
printf("Info joueur %d : %s %s\n", i+1, info[i].nom, info[i].prenom);
return 0;
}
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
#define MAX 2
int main(void) {
int i;
joueur info[MAX];
for (i = 0; i < MAX; i++) {
printf("nom joueur %d :\n", i+1);
scanf("%s", info[i].nom);
printf("prenom joueur %d :\n", i+1);
scanf("%s", info[i].prenom);
}
for (i = 0; i < MAX; i++)
printf("Info joueur %d : %s %s\n", i+1, info[i].nom, info[i].prenom);
return 0;
}
Non assez simple Par contre j'ai des problème pour la création de la fonction de réinitialisation
#define MAX 2
int main(void) {
int i;
joueur info[MAX];
for (i = 0; i < MAX; i++) {
printf("nom joueur %d :\n", i+1);
scanf("%s", info[i].nom);
printf("prenom joueur %d :\n", i+1);
scanf("%s", info[i].prenom);
}
for (i = 0; i < MAX; i++)
printf("Info joueur %d : %s %s\n", i+1, info[i].nom, info[i].prenom);
return 0;
}
Non assez simple Par contre j'ai des problème pour la création de la fonction de réinitialisation
- Edité par BilâlAdanur il y a environ 1 heure
Ah... car il y a une fonction de réinitialisation ? Qui sert à quoi ?
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Ah... car il y a une fonction de réinitialisation ? Qui sert à quoi ?
" Initialiser une structure
Pour les structures comme pour les variables, tableaux et pointeurs, il est vivement conseillé de les initialiser dès leur création pour éviter qu'elles ne contiennent « n'importe quoi ». En effet, je vous le rappelle, une variable qui est créée prend la valeur de ce qui se trouve en mémoire là où elle a été placée. "
Du coup j'ai fais :
int main()
{
int i = 0;
Joueur reset;
init(&reset);
Joueur info[MAX];
printf("Tableau 1 :\n");
for (i = 0; i < MAX ; i++)
{
printf("%s \n", info[i].nom);
}
printf("Tableau 2 :\n");
for (i = 0; i < MAX; i ++)
{
printf("%s \n", info[i].prenom);
}
for (i = 0; i < MAX; i++)
{
printf("nom joueur %d :\n", i+1);
scanf("%s", info[i].nom);
printf("prenom joueur %d :\n", i+1);
scanf("%s", info[i].prenom);
}
for (i = 0; i < MAX; i++)
{
printf("Info joueur %d : %s %s\n",i+1, info[i].nom, info[i].prenom);
}
return 0;
}
Mais j'ai l'impression que sa ne réinitialise pas car dans les printf je vois n'importe quoi. Même si ici la fonction ne sert à rien je souhaite comprendre pour la suite, car je pense que sa pourrai être utile ?
Alors ici tu mets la case 100 du tableau à 0 or cette case ne fait pas partie du tableau puisque les case vont de 0 à 99 !
En fait pour mettre toutes les cases à 0 tu dois le faire une par une avec une boucle ou utiliser des fonctions comme memset. (Dans le cas de ton code, ce n'est pas utile de les mettre à 0).
Une autre possibilité est de le faire des la déclaration du tableau :
Alors ici tu mets la case 100 du tableau à 0 or cette case ne fait pas partie du tableau puisque les case vont de 0 à 99 !
Oui !!! Je me suis embrouillé le cerveau je commençais même à désespérer, du coup j'ai changé j'ai fais ça et c'est bon :
#define STRUCT_CASE 100
void init(Joueur *reset)
{
int i = 0;
for (i = 0; i < STRUCT_CASE; i++)
{
reset->nom[i] = 0;
reset->prenom[i] = 0;
}
}
rouIoude a écrit:
reset->nom[100] = 0;
Alors ici tu mets la case 100 du tableau à 0 or cette case ne fait pas partie du tableau puisque les case vont de 0 à 99 !
En fait pour mettre toutes les cases à 0 tu dois le faire une par une avec une boucle ou utiliser des fonctions comme memset. (Dans le cas de ton code, ce n'est pas utile de les mettre à 0).
Je ne connais pas encore memset
Une autre possibilité est de le faire des la déclaration du tableau :
Joueur reset = {{0}, {0}};
Merci beaucoup pour l'info, depuis le début d'après-midi je suis dessus alors que c'est exactement comme les tableaux, c'est pas compliqué du tout...
Même si c'est pas utile je préfère comprendre sinon sa n'aura aucun intérêt
Rouloude j'ai fais un edit je sais pas si tu a vu :
1
#define STRUCT_CASE 100
Je les met dans les headers maintenant les #define, j'en suis à apprendre l'allocation dynamique, je vais pas tarder à réaliser un pendu, je pense que je vais pas trop rigoler devant mais avec de la persévérance je pense bien réussir.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent