Please Aidez Moi dans ce Programme c
Manika alberta
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
nar6du14 Messages postés 459 Date d'inscription Statut Membre Dernière intervention -
nar6du14 Messages postés 459 Date d'inscription Statut Membre Dernière intervention -
Bonjour Svp aidez Moi pour exécuter ce programme en c , Merci
#include<stdlib.h>
#include<conio.h>
typedef struct cell{
int valeur;
struct cell *suivant;
} cellule;
typedef cellule* liste;
liste saisieListe(void) {
/* rend l'adresse de début de la liste saisie */
liste li=NULL, precedent, actuel ;
int val, erreur ;
printf("\n\n\n\n\n");
do {
printf("\n\t prochaine valeur ? (un caractère pour finir) : ");
erreur=scanf("%d",&val) ;
if(erreur<=0) break ; /* scanf() rend le nombre de variables lues sans
erreur */
actuel=(liste)malloc(sizeof(cellule)) ;
actuel->valeur=val ;
if(li==NULL) li=actuel ;
else
precedent->suivant=actuel ;
precedent=actuel ;
} while (1) ;
actuel->suivant=NULL ;
return(li) ;
}
void afficheListe(liste li) {
liste li1=li;
printf("\n\n\n\n\t affichage de la liste li : ");
for(li1=li;li1!=NULL;li1=li1->suivant){
printf(" %d",li1->valeur);
}
getch();
}
int LongueurListeIt(liste li) {
int n=0 ;
while(li!=NULL) {
n++ ;
li=li->suivant ;
}
return(n) ;
}
int NbOccIt(liste li, int val) {
int nb=0 ;
while(li!=NULL) {
if (li->valeur==val)
nb++ ;
li=li->suivant ;
}
return(nb) ;
}
void insertionPremier(liste *li, int val) {
liste nouv ;
nouv=(liste)malloc(sizeof(cellule));
nouv->valeur=val ;
nouv->suivant=*li ;
*li=nouv ;
}
void insertionMilieu(liste li, int val) {
liste nouv ;
nouv=(liste)malloc(sizeof(cellule));
nouv->valeur=val ;
nouv->suivant=li->suivant ;
li->suivant=nouv ;
}
liste chercherPrecedent(liste li, liste suiv) {
/* rendre l'adresse NULL si on pas trouvé */
while(li->suivant!=suiv && li!=NULL)
li=li->suivant ;
return(li) ;
}
liste chercherIndice(liste li, int i) {
/* rend l'adresse du(i+1)-ième, NULL si liste trop courte */
int j ;
for(j=0 ;j<i && li!=NULL ;j++)
li=li->suivant ;
return(li) ;
}
liste chercherElement(liste li, int val) {
/* rend l'adresse, NULL si on n'a pas trouvé */
while(li!=NULL && li->valeur!=val)
li=li->suivant ;
return(li) ;
}
void supprimerSuivant(liste precedent) {
liste supp ;
if(precedent==NULL || precedent->suivant==NULL) {
puts("\n\n\n\n\t\t rien a supprimer!");
return;
}
supp=precedent->suivant;
precedent->suivant=supp->suivant;
free(supp);
}
void supprimerPremier(liste *li) {
liste supp ;
if(*li==NULL) {
puts("\n\n\n\n\t\t rien a supprimer!");
return;
}
supp=*li;
*li=(*li)->suivant ;
free(supp);
}
void supprimerTout(liste li) {
liste supp ;
while(li !=NULL) {
supp=li->suivant;
free(li) ;
li=supp;
}
}
int main() {
liste li, laux, pl, li1;
int val, i, n, k, choix;
li=saisieListe();
afficheListe(li);
do {
printf("---------------------------------\n");
printf("1 Pour saisir une nouvelle liste ....... \n");
printf("2 Pour afficher la liste saisie ....... \n");
printf("3 Pour calculer la longueur ....... \n");
printf("4 Pour calculer le nombre d'occ. ....... \n");
printf("5 Pour inserer au debut ....... \n");
printf("6 Pour inserer au milieu ....... \n");
printf("7 Pour supprimer au debut ....... \n");
printf("8 Pour supprimer au milieu ....... \n");
printf("9 Pour quitter le programme ....... \n");
printf("0 Donner votre choix s.v.p. .......:");
scanf("%d",&choix);
switch(choix) {
case 1 : {
li=saisieListe();
afficheListe(li);
break;
}
case 2 : {
afficheListe(li);
break;
}
case 3 : {
k=LongueurListeIt(li);
printf("\n\n\n\n\t\t la longueur est %d\n",k);
getch();
break;
}
case 4 : {
printf("\t\t val ? ");
scanf("%d",&val) ;
n=NbOccIt(li,val);
printf("\n\n\n\n") ;
printf("\t\t le nombre d'occurence de %d est %d\n",val,n);
getch();
break;
}
case 5 : {
printf("\n\n\n\n\t\t valeur a inserer au debut ? ");
scanf("%d",&val) ;
insertionPremier(&li,val);
afficheListe(li);
break;
}
case 6 : {
printf("\n\n\n\n\t\t valeur a inserer au milieu ? ");
scanf("%d",&val) ;
insertionMilieu(li,val);
afficheListe(li);
break;
}
case 7 : {
supprimerPremier(&li);
afficheListe(li);
break;
}
case 8 : {
supprimerSuivant(li->suivant);
afficheListe(li);
break;
}
default : break;
}
}while(choix);
supprimerTout(li);
afficheListe(li);
getche();
}
#include<stdlib.h>
#include<conio.h>
typedef struct cell{
int valeur;
struct cell *suivant;
} cellule;
typedef cellule* liste;
liste saisieListe(void) {
/* rend l'adresse de début de la liste saisie */
liste li=NULL, precedent, actuel ;
int val, erreur ;
printf("\n\n\n\n\n");
do {
printf("\n\t prochaine valeur ? (un caractère pour finir) : ");
erreur=scanf("%d",&val) ;
if(erreur<=0) break ; /* scanf() rend le nombre de variables lues sans
erreur */
actuel=(liste)malloc(sizeof(cellule)) ;
actuel->valeur=val ;
if(li==NULL) li=actuel ;
else
precedent->suivant=actuel ;
precedent=actuel ;
} while (1) ;
actuel->suivant=NULL ;
return(li) ;
}
void afficheListe(liste li) {
liste li1=li;
printf("\n\n\n\n\t affichage de la liste li : ");
for(li1=li;li1!=NULL;li1=li1->suivant){
printf(" %d",li1->valeur);
}
getch();
}
int LongueurListeIt(liste li) {
int n=0 ;
while(li!=NULL) {
n++ ;
li=li->suivant ;
}
return(n) ;
}
int NbOccIt(liste li, int val) {
int nb=0 ;
while(li!=NULL) {
if (li->valeur==val)
nb++ ;
li=li->suivant ;
}
return(nb) ;
}
void insertionPremier(liste *li, int val) {
liste nouv ;
nouv=(liste)malloc(sizeof(cellule));
nouv->valeur=val ;
nouv->suivant=*li ;
*li=nouv ;
}
void insertionMilieu(liste li, int val) {
liste nouv ;
nouv=(liste)malloc(sizeof(cellule));
nouv->valeur=val ;
nouv->suivant=li->suivant ;
li->suivant=nouv ;
}
liste chercherPrecedent(liste li, liste suiv) {
/* rendre l'adresse NULL si on pas trouvé */
while(li->suivant!=suiv && li!=NULL)
li=li->suivant ;
return(li) ;
}
liste chercherIndice(liste li, int i) {
/* rend l'adresse du(i+1)-ième, NULL si liste trop courte */
int j ;
for(j=0 ;j<i && li!=NULL ;j++)
li=li->suivant ;
return(li) ;
}
liste chercherElement(liste li, int val) {
/* rend l'adresse, NULL si on n'a pas trouvé */
while(li!=NULL && li->valeur!=val)
li=li->suivant ;
return(li) ;
}
void supprimerSuivant(liste precedent) {
liste supp ;
if(precedent==NULL || precedent->suivant==NULL) {
puts("\n\n\n\n\t\t rien a supprimer!");
return;
}
supp=precedent->suivant;
precedent->suivant=supp->suivant;
free(supp);
}
void supprimerPremier(liste *li) {
liste supp ;
if(*li==NULL) {
puts("\n\n\n\n\t\t rien a supprimer!");
return;
}
supp=*li;
*li=(*li)->suivant ;
free(supp);
}
void supprimerTout(liste li) {
liste supp ;
while(li !=NULL) {
supp=li->suivant;
free(li) ;
li=supp;
}
}
int main() {
liste li, laux, pl, li1;
int val, i, n, k, choix;
li=saisieListe();
afficheListe(li);
do {
printf("---------------------------------\n");
printf("1 Pour saisir une nouvelle liste ....... \n");
printf("2 Pour afficher la liste saisie ....... \n");
printf("3 Pour calculer la longueur ....... \n");
printf("4 Pour calculer le nombre d'occ. ....... \n");
printf("5 Pour inserer au debut ....... \n");
printf("6 Pour inserer au milieu ....... \n");
printf("7 Pour supprimer au debut ....... \n");
printf("8 Pour supprimer au milieu ....... \n");
printf("9 Pour quitter le programme ....... \n");
printf("0 Donner votre choix s.v.p. .......:");
scanf("%d",&choix);
switch(choix) {
case 1 : {
li=saisieListe();
afficheListe(li);
break;
}
case 2 : {
afficheListe(li);
break;
}
case 3 : {
k=LongueurListeIt(li);
printf("\n\n\n\n\t\t la longueur est %d\n",k);
getch();
break;
}
case 4 : {
printf("\t\t val ? ");
scanf("%d",&val) ;
n=NbOccIt(li,val);
printf("\n\n\n\n") ;
printf("\t\t le nombre d'occurence de %d est %d\n",val,n);
getch();
break;
}
case 5 : {
printf("\n\n\n\n\t\t valeur a inserer au debut ? ");
scanf("%d",&val) ;
insertionPremier(&li,val);
afficheListe(li);
break;
}
case 6 : {
printf("\n\n\n\n\t\t valeur a inserer au milieu ? ");
scanf("%d",&val) ;
insertionMilieu(li,val);
afficheListe(li);
break;
}
case 7 : {
supprimerPremier(&li);
afficheListe(li);
break;
}
case 8 : {
supprimerSuivant(li->suivant);
afficheListe(li);
break;
}
default : break;
}
}while(choix);
supprimerTout(li);
afficheListe(li);
getche();
}
A voir également:
- Please Aidez Moi dans ce Programme c
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
11 réponses
A quoi sert laux, pl, li1 dans le main je ne comprends pas et aussi tu dois rajouter un return 0; à la fin de ton main...c'est quoi conio ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je sais pas le programme s'éxecute pas je sais pas c koi le prb
ça marche chez moi et j'ai ajouté quelques modifications:
https://pastebin.com/VQur4kaj
J'ai enlevé les variables inutile et remplacer les getch par getchar().
https://pastebin.com/VQur4kaj
J'ai enlevé les variables inutile et remplacer les getch par getchar().
Je veux aussi lui ajouter cette fonction ms je sais pas comment
void vider_buffer(){
scanf("%*[^\n]");
getchar ();
}
void vider_buffer(){
scanf("%*[^\n]");
getchar ();
}
Elle fera quoi exactement cette fonction, à toi de trouver l'algorithme...et d'implémenter.
Un string dans l'array.
Un string dans l'array.
Bonjour,
Je n'ai pas lu le programme car il est illisible.
Merci donc de le poster en le mettant dans des balises "code" (bouton <> à droite du bouton souligné).
Sinon void vider_buffer(){
scanf("%*[^\n]");
getchar ();
}
Ok pour la fonction. C'est quoi qui te pose problème dedans ? Tu as juste à l'appeler dès que tu utilises un scanf() ;-).
Et un conseil, rajoute un system("pause"); à la fin de ton programme dans (juste avant le return 0; du main()) pour éviter que ton programme se ferme.
Je n'ai pas lu le programme car il est illisible.
Merci donc de le poster en le mettant dans des balises "code" (bouton <> à droite du bouton souligné).
Sinon void vider_buffer(){
scanf("%*[^\n]");
getchar ();
}
Ok pour la fonction. C'est quoi qui te pose problème dedans ? Tu as juste à l'appeler dès que tu utilises un scanf() ;-).
Et un conseil, rajoute un system("pause"); à la fin de ton programme dans (juste avant le return 0; du main()) pour éviter que ton programme se ferme.
ça marche avec pause mais , Je vx Qu'il m'affiche le menu :(
Lorsque tu écris ton commentaire, tu as 4 boutons (B, I, S,<>) qui te permettent une mise en forme. B : pour le gras, I pour l'italique, S pour le souligné et enfin <> pour garder l'indentation du code. Tu cliques donc sur <>. Une balise < code > < / code > va apparaître. T'écris ton code entre les deux. Par exemple : < code > int main(void)... < /code >. (J'ai mis un espace entre < et > et code, mais il y en a pas).