Mon programme ne veut pas fonctionner
zinebe96
Messages postés
3
Statut
Membre
-
NHenry Messages postés 15479 Statut Modérateur -
NHenry Messages postés 15479 Statut Modérateur -
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
- Programme word gratuit - Guide
- Message programmé iphone - 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
Statut
Membre
??
NHenry
Messages postés
15479
Statut
Modérateur
366
en quoi ton programme ne fonctionne pas ?
zinebe96
Messages postés
3
Statut
Membre
quand je compile on m'affiche que le programme a cesser de fonctionner et il y' en a aucune erreur
NHenry
Messages postés
15479
Statut
Modérateur
366
As-tu essayé en pas à pas ?