Aide langage C

Résolu/Fermé
CALiiMERO Messages postés 69 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 - 5 mars 2009 à 21:51
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 6 mars 2009 à 13:19
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
5 mars 2009 à 21:53
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 jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 8
5 mars 2009 à 21:54
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
5 mars 2009 à 21:57
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 jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 8
5 mars 2009 à 22:34
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 jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 8
5 mars 2009 à 23:07
#include <stdin.h>
#include <stdio.h>
#define MAX=10
main() {
char D[MAX]
0
CALiiMERO Messages postés 69 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 8
5 mars 2009 à 23:26
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
6 mars 2009 à 00:41
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 jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 8
6 mars 2009 à 00:45
#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 jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 8
6 mars 2009 à 00:47
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
6 mars 2009 à 01:28
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 jeudi 5 mars 2009 Statut Membre Dernière intervention 16 février 2014 8
6 mars 2009 à 13:07
#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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
6 mars 2009 à 13:19
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