Probleme de matrice et chaine de caractere
Résolu/Fermé
keli1
Messages postés
18
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
17 février 2011
-
Modifié par keli1 le 26/01/2011 à 21:51
keli1 Messages postés 18 Date d'inscription mercredi 26 janvier 2011 Statut Membre Dernière intervention 17 février 2011 - 26 janv. 2011 à 23:39
keli1 Messages postés 18 Date d'inscription mercredi 26 janvier 2011 Statut Membre Dernière intervention 17 février 2011 - 26 janv. 2011 à 23:39
A voir également:
- Probleme de matrice et chaine de caractere
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
Modifié par fiddy le 26/01/2011 à 22:23
Modifié par fiddy le 26/01/2011 à 22:23
Bonjour,
Pas mal de choses sont à revoir.
main()<ital>
La fonction main renvoie un entier. Donc : int main(void)
<ital>while (m>100);
Cela serait mieux de vérifier également si m est négatif ou pas.
De plus j'ai l'impression que tu as inversé le 100 avec le 33.
while(n>33);
Même remarque.
gets(&s);
Attention, s est un char par une chaîne de caractères. C'est donc incompatible avec gets en l'état. De plus gets est à proscrire.
Un simple fgets() sur l'élément base[j] fera l'affaire. Pas besoin de variable s.
return(0);
Pour info, return n'est pas une fonction. Un simple return 0; fera l'affaire. Après libre à toi de choisir ;-).
Et enfin, tu n'as pas besoin de string.h.
A ta disposition, si tu as des questions.
Cdlt,
Google is your friend
Pas mal de choses sont à revoir.
main()<ital>
La fonction main renvoie un entier. Donc : int main(void)
<ital>while (m>100);
Cela serait mieux de vérifier également si m est négatif ou pas.
De plus j'ai l'impression que tu as inversé le 100 avec le 33.
while(n>33);
Même remarque.
gets(&s);
Attention, s est un char par une chaîne de caractères. C'est donc incompatible avec gets en l'état. De plus gets est à proscrire.
Un simple fgets() sur l'élément base[j] fera l'affaire. Pas besoin de variable s.
return(0);
Pour info, return n'est pas une fonction. Un simple return 0; fera l'affaire. Après libre à toi de choisir ;-).
Et enfin, tu n'as pas besoin de string.h.
A ta disposition, si tu as des questions.
Cdlt,
Google is your friend
keli1
Messages postés
18
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
17 février 2011
26 janv. 2011 à 23:07
26 janv. 2011 à 23:07
le 100 n'est pas utilisé pour le nombre de caracteres des chaines,c'est le nombre maximal des éléments de la base(c'est le nombre des ensembles d'identifiants).chacun de ces ensembles doit contenir au plus 32 chaines de caracteres saisies par l'utilisateur à travers le clavier
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
Modifié par fiddy le 26/01/2011 à 23:21
Modifié par fiddy le 26/01/2011 à 23:21
Très juste, j'ai mal lu.
Beh dans ce cas-là, t'inverses dans mes remarques 100 par 32 ;-))).
L'avantage de sizeof est que mon code reste toujours bon. Il faut toujours utiliser : fgets(base[j],sizeof *base,stdin);
Beh dans ce cas-là, t'inverses dans mes remarques 100 par 32 ;-))).
L'avantage de sizeof est que mon code reste toujours bon. Il faut toujours utiliser : fgets(base[j],sizeof *base,stdin);
keli1
Messages postés
18
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
17 février 2011
26 janv. 2011 à 23:39
26 janv. 2011 à 23:39
merciiiiiiiiii fiddy le probleme est résolu ;))
26 janv. 2011 à 22:33
De plus j'ai un probleme lors de l'affichage de B[i][j] les valeurs sont erronées peux tu m'aider pour résoudre ces problemes stp?
26 janv. 2011 à 22:56
Un simple fgets(base[j],sizeof *base, stdin); fera l'affaire.
De plus j'ai un probleme lors de l'affichage de B[i][j] les valeurs sont erronées peux tu m'aider pour résoudre ces problemes stp?
Ah oui, j'avais même pas lu le printf. En plus attention, il ne sera trouve pas dansla boucle for(j).
Si tu souhaites afficher la chaîne, il suffit de mettre puts(base[j]) ou printf("%s\n",base[j]); si tu souhaites afficher un numéro alors il s'agit de : printf("%i\n",j);
A toi de voir ce que tu veux.
Cordialement,