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
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
A voir également:
- Aide langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Dev-Pascal - Télécharger - Édition & Programmation
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
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.
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.
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
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.
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
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.
Sinon tu peux commencer par expliquer l'algorithme, comment tu comptes t'y prendre.
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
5 mars 2009 à 22:34
Il faut faire une boucle n'est ce pas
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
5 mars 2009 à 23:07
#include <stdin.h>
#include <stdio.h>
#define MAX=10
main() {
char D[MAX]
#include <stdio.h>
#define MAX=10
main() {
char D[MAX]
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
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")
printlf ("Entrer une chaine de caractère")
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
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];
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];
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
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)
}
#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)
}
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
6 mars 2009 à 00:47
Voilà ce que j'ai pu mettre comme programme si vous voulez le corriger, merci beaucoup
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
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 :
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 :-).
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 :-).
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
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.
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
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.
Cdlt
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