Probleme de matrice et chaine de caractere
Résolu
keli1
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
keli1 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
keli1 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je veux saisir d'abord au plus 100 ensembles de chaines de caracteres . chaque ensemble doit avoir une taille maximale égale à 32
le 100 ensembles forment une série nommeé la base B et chaque ensemble on va le considerer comme etant un element de la base tous vont etre stocker dans un tableau.voici mon code svp pouvez vous m'aider?
je veux saisir d'abord au plus 100 ensembles de chaines de caracteres . chaque ensemble doit avoir une taille maximale égale à 32
le 100 ensembles forment une série nommeé la base B et chaque ensemble on va le considerer comme etant un element de la base tous vont etre stocker dans un tableau.voici mon code svp pouvez vous m'aider?
#include<stdio.h> #include<stdlib.h> #include<string.h> main() { char base[100][32]; int m,i,j,n; do { printf("donner la longueur de la base\n\n "); scanf("%d",&m); } while (m>100); for(i=0;i<m;i++) { printf("l'ensemble numero : %d\n",i); do { printf("donnez le nombre d'identifiant\n\n "); scanf("%d",&n); } while(n>33); printf("veuillez entrer l'ensemble d'identifiants\n\n "); for(j=0;j<n;j++) gets(&base[i][j]); printf("l'element de la base est %d\n",base[i][j]); } system("pause"); return(0); }
A voir également:
- Probleme de matrice et chaine de caractere
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Plus de chaine tv - Guide
- Chaine tnt gratuite sur mobile - Guide
2 réponses
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
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
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?
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,