Aide langage C

Résolu
CALiiMERO Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Qui peut m'aider à faire ça s'il vous plaît :

Ecrire un programme C qui permet de stcker un nombre de chaine de caractère de taille maximal 10 dans un tableau D de dimension fini. et les affichers

Merci d'avance.

Cordialement,
CALiiMERO
A voir également:

12 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Oui, on peut t'aider, mais pour cela faut que tu postes ce que tu as commencé à faire ou dire ce que tu comprends pas.
0
CALiiMERO Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   8
 
Je n'ai rien commencer encore j'ai un peu du mal puisque je viens de commencer à apprendre ce langage.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Si on te demande de le faire, c'est que tu en as le niveau. Donc tu peux sûrement commencer à faire quelque chose. Sinon, voici un petit tutoriel https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c où tu pourras renforcer tes connaissances.
Sinon tu peux commencer par expliquer l'algorithme, comment tu comptes t'y prendre.
0
CALiiMERO Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   8
 
Il faut faire une boucle n'est ce pas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CALiiMERO Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   8
 
#include <stdin.h>
#include <stdio.h>
#define MAX=10
main() {
char D[MAX]
0
CALiiMERO Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   8
 
j'ai un problème avec la chaine de caractère que l'utilisateur de programme va insérer, j'ai mis :
printlf ("Entrer une chaine de caractère")
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Oui il faut faire une boucle.
Pour lire un mot c'est scanf("%9s",&mot);
Une boucle c'est avec while.
Et le tableau c'est char tab[NB_ELT][10];
0
CALiiMERO Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   8
 
#include <stdin.h>
#include <stdio.h>

#define MAX=10
main()
{
char D[MAX];
int L; /* L est la longueur de la chaine de caractère */
int C; /* C est le Caractère d'entrer */
int i; /* i est un compteur (indice) */
printf (''Entrer une chaine de caractère'')
L=0;
char s[];
for (i=0; 0<MAX-1; ++i)
{
while (C=getchar()!=EOF && C!=\n')
s[i]=C;
}
if ( C == '\n')
{
s[i]=C;
++i;
}
s[i]='\0';
L=i;
if (L <= 10)
D=s;

printf (''%s'', D)
}
0
CALiiMERO Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   8
 
Voilà ce que j'ai pu mettre comme programme si vous voulez le corriger, merci beaucoup
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Tu n'as pas utilisé un char à deux dimensions. Donc ça peut pas marcher.
Pas de signe égal dans le define. Juste #define MAX 10
#include <stdin.h> n'existe pas.
char s[]; ne peut pas être utilisé puisque la dimension n'est pas spécifiée à la compilation.

Voici l'algorithme :
Tab : tableau de chaîne de caractères (en C : char tab[NB_ELT][MAX];)
i : entier
Pour i de 0 à NB_ELT - 1 faire :
    Lire tab[i]  //maximum MAX lettre
Fin Pour

Pour i de 0 à NB_ELT - 1 faire :
    Afficher tab[i]
FinPour

T'as juste à le coder en C. Et tu n'as pas besoin d'autres variables.
La prochaine fois, utilise la balise de conservation du code (à droite du bouton souligner) et respecte l'indentation comme dans mon algorithme. C'est beaucoup plus agréable à lire :-).
0
CALiiMERO Messages postés 69 Date d'inscription   Statut Membre Dernière intervention   8
 
#include <stdio.h>
#define MAX 10

main() {
char[NB_ELT] [MAX];
int i;
for (i=0; i< NB_ELT – 1; ++i)
scanf([i])
for (i=0; i< NB_ELT – 1; ++i)
printf ([i])
}


je crois que j'ai eu du mal à traduire les deux mots :
Lire tab[i]
Afficher tab[i]

J'attend votre aide :)
Merci beaucoup.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Ah, c'est beaucoup beaucoup mieux.
Tu as oublié de définir NB_ELT qui contient le nombre de mots que tu peux caser dans le tableau.
Je te mets en gras toutes les modifications que j'ai apportées.

#include <stdio.h>
#define MAX 10
#define NB_ELT 5

int main(void) {
char tab[NB_ELT][MAX+1]; //il  ne faut pas oublier de stocker le '\0' final et le nom du tableau
int i;
for (i=0; i< NB_ELT; ++i) //pas besoin de mettre - 1 puisqu'il s'agit d'inégalité stricte
     scanf("%9s",tab[i]); //j'ai mis 9 pour éviter les débordements, tu peux l'enlever si tu ne comprends pas.

for (i=0; i< NB_ELT; ++i)
   puts(tab[i]); // ou printf("%s\n",tab[i]);

return 0;
}

Cdlt
0