Mon programme ne veut pas fonctionner
zinebe96
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
NHenry Messages postés 15219 Date d'inscription Statut Modérateur Dernière intervention -
NHenry Messages postés 15219 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, voila le programme qui:
1/renvie la longueur du plus long mot d'une phrase donnée.
2/renvoie les mots composant une phrase dans un tableau de pointeurs sur char réservant dynamiquement l'emplacement en mémoire pour les chaînes et qui revoie le nombre de ces mots.
3/inverse l'ordre des mots en modifiant les pointeurs du tableau.
4/affiche le tableau de chaines de caractères.
5/trie le tableau des chaines par ordre croissant.
1/renvie la longueur du plus long mot d'une phrase donnée.
2/renvoie les mots composant une phrase dans un tableau de pointeurs sur char réservant dynamiquement l'emplacement en mémoire pour les chaînes et qui revoie le nombre de ces mots.
3/inverse l'ordre des mots en modifiant les pointeurs du tableau.
4/affiche le tableau de chaines de caractères.
5/trie le tableau des chaines par ordre croissant.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #define max 50 int plu_long(char *S) { int i=0; int k; int m=0; int nmots=0; while(*(S+i)!='\0' && (ispunct(*(S+i))==1||isspace(*(S+i))==1)) i++; while(*(S+i)!='\0') { k=0; while(*(S+i)!='\0' && ispunct(*(S+i))==0 && isspace(*(S+i))==0) { i++; k++; } nmots++; if(k>m) m=k; while(*(S+i)!='\0' && (ispunct(*(S+i))==1||isspace(*(S+i))==1)) i++; } printf("\nle nombre de mots est %d\n",nmots); return m; } int repart (char* vect_phrase[],char* phrase) { char *S,*p; S=phrase; p=NULL; int k,nmots,i; nmots=0; while((*S)!='\0' && (ispunct(*S)==1 || isspace(*S)==1)) {S++;} while(*S!='\0') { k=0; p=S; while(*S!='\0' && ispunct(*S)==0 && isspace(*S)==0) { S++; k++; } nmots++; vect_phrase[i]=(char*)malloc(k+1); if(vect_phrase[i]==NULL) { printf("\nespace insuffisant\n"); exit(1); } strncpy(vect_phrase[i],p,k); i++; vect_phrase[i][k]='\0'; while(*S!='\0' && (ispunct(*S)==1 || isspace(*S)==1)) {S++;} } for (i=0;i<nmots;i++) { printf("\n%s\n",vect_phrase[i]); } return nmots; } void inverse(char*T[],int n) { int i,j ; char* d ; j=n-1; for(i=0 ;i<n; i++) { while(i<j) { d=*(T+i); *(T+i)=*(T+j); *(T+j)=d; j--; } } } char* saisie() { char *s; s=(char*)malloc(80*sizeof(char)); printf("\ndonnez une phrase\n"); gets(s); return s; } void affiche(char*T[],int n) { int i; i=0; for(i=0;i<n;i++) { printf("\tmot%d:",i+1); puts(*(T+i)); } } void tri(char*T[],int n) { int i,j; char *d; for(i=1;i<n;i++) { j=i; while(j>0 && strcmp(T[j-1],T[j])>0) { d=T[j]; T[j]=T[j-1]; T[j-1]=d; j--; } } } int main() { int choix,x; char *phrase, *vect_phras[max]; int N,M; do { do { phrase=saisie(); printf("\n\tla phrase saisie est:\n"); puts(phrase); printf("\n tappez:\n1 pour afficher la longueur du plus long mot\n2 pour afficher le nombre de mots\n3 pour inverser le tableau et l'afficher \n4 pour afficher le tableau\n5 pour tier le tableau etl'afficher\n\n"); scanf("%d",&choix); switch(choix) { case 1: M=plu_long(phrase); printf("\nla longueur de plus long mot est:%d\n",M); break; case 2: N=repart(vect_phras,phrase); printf("\nle nombre de mots est: %d\n",N); break; case 3: inverse(vect_phras,N); affiche(vect_phras,N); break; case 4: printf("\n\tle tableau de mots:\n"); affiche(vect_phras,N); break; case 5: tri(vect_phras,N); printf("\n\ttri du tableau de mots\n"); affiche(vect_phras,N); break; default: printf("\nchoix non conforme\n"); break; } }while(choix!=1 && choix!=2 && choix!=3 && choix!=4 && choix!=5); printf("\n tappez:\n1 pour continuer\n2 pour quitter\n"); scanf("%d",&x); }while(x!=2); return 0; }
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Mon programme ne veut pas fonctionner
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Comment fermer un programme qui ne répond pas - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
1 réponse
"Mon programme ne veut pas fonctionner"
Et avec plus d'information ?
Et avec plus d'information ?
zinebe96
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
??
NHenry
Messages postés
15219
Date d'inscription
Statut
Modérateur
Dernière intervention
365
en quoi ton programme ne fonctionne pas ?
zinebe96
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
quand je compile on m'affiche que le programme a cesser de fonctionner et il y' en a aucune erreur
NHenry
Messages postés
15219
Date d'inscription
Statut
Modérateur
Dernière intervention
365
As-tu essayé en pas à pas ?