Programme c
hooda
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai écrit cette fonction (dev ,c++),il compile mais il y a un problème pendant l'exécution, pouvez vous m'aider à résoudre ce problème !:( merci d'avance
// fonction ajouter debut
liste * ajouter_debut (liste * ma_liste)
{
liste * nouv_etudiant;
nouv_etudiant=(liste*)malloc(sizeof(liste));
printf("le nom est: \n");
scanf("%s",(nouv_etudiant -> nom));
printf("son prenom est: \n");
scanf("%s",(nouv_etudiant -> prenom));
printf("son age est: \n");
scanf("%d",&(nouv_etudiant -> age));
printf("son code est: \n");
scanf("%d",&(nouv_etudiant -> code));
nouv_etudiant -> suivant = ma_liste;
return(nouv_etudiant );
}
int main()
{
liste *ma_liste;
int n,i,;
ma_liste=NULL;
printf("n=");
scanf("%d",&n);
for(i=0;i<=n;i++)
{
ma_liste= ajouter_debut(ma_liste);
}
return(0);
}
j'ai écrit cette fonction (dev ,c++),il compile mais il y a un problème pendant l'exécution, pouvez vous m'aider à résoudre ce problème !:( merci d'avance
// fonction ajouter debut
liste * ajouter_debut (liste * ma_liste)
{
liste * nouv_etudiant;
nouv_etudiant=(liste*)malloc(sizeof(liste));
printf("le nom est: \n");
scanf("%s",(nouv_etudiant -> nom));
printf("son prenom est: \n");
scanf("%s",(nouv_etudiant -> prenom));
printf("son age est: \n");
scanf("%d",&(nouv_etudiant -> age));
printf("son code est: \n");
scanf("%d",&(nouv_etudiant -> code));
nouv_etudiant -> suivant = ma_liste;
return(nouv_etudiant );
}
int main()
{
liste *ma_liste;
int n,i,;
ma_liste=NULL;
printf("n=");
scanf("%d",&n);
for(i=0;i<=n;i++)
{
ma_liste= ajouter_debut(ma_liste);
}
return(0);
}
A voir également:
- Programme c
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
2 réponses
ce problème est posé depuis longtemps jusqu'au j'ai arrivé à le résoudre par moi même et encore pas de réponse !c bizarre mais comment fonctionne ce fameux forum !! y a pas de membre ou quoi !
bonjour,
merci beaucoup excusez mon attitude, ce problème m'a énormément stressée et j'avais personne pour m'aider ,en fait c'était pas seulement un problème de virgule mais il était un disfonctionnement dans l'exécution.. merci en tout cas
merci beaucoup excusez mon attitude, ce problème m'a énormément stressée et j'avais personne pour m'aider ,en fait c'était pas seulement un problème de virgule mais il était un disfonctionnement dans l'exécution.. merci en tout cas
il ne s'agit pas d'une ligne, mais au cours de l'exécution il ne compte pas le nombre d'occurrence autrement ,je pense qu'il y a un erreur au niveau de la fonction qui compte le nombre d'occurrence .
voici le code :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct etudiant
{
char nom[25];
char prenom[20];
int age;
int code;
struct etudiant * suivant ;
};
typedef struct etudiant etudiant;
typedef etudiant liste;
// fonction ajouter debut
liste * ajouter_debut (liste * ma_liste)
{
liste * nouv_etudiant;
nouv_etudiant=(liste*)malloc(sizeof(liste));
printf("le nom est:\n");
scanf("%s",(nouv_etudiant -> nom));
printf("son prenom est: \n");
scanf("%s",(nouv_etudiant -> prenom));
printf("son age est:\n");
scanf("%d",&(nouv_etudiant -> age));
printf("son code est:\n");
scanf("%d",&(nouv_etudiant -> code));
nouv_etudiant -> suivant = ma_liste;
return(nouv_etudiant );
}
//fonction recherche
liste* rech(liste* ma_liste,int x)
{liste *p=ma_liste;
while (p !=NULL)
{ if (p->code == x)
{
return(p);
}
p=p->suivant;
}
return(NULL);
}
//fonction nombre d'occurence
int nb_occ(liste* ma_liste,int x)
{ int cp=0;
if (ma_liste==NULL)
return(0);
else
{
while( (ma_liste = rech(ma_liste,x)) !=NULL)
{
ma_liste=ma_liste->suivant;
cp++ ;
}
return(cp);
}
}
//fonction affiche
void affiche(liste* ma_liste)
{
liste *temp;
temp = ma_liste;
while(temp !=NULL)
{
printf("le nom est %s \n",temp->nom);
printf("son prenom est: %s \n",temp->prenom);
printf("son age est:%d \n",temp->age);
printf("son code est: %d \n \n",temp->code);
temp=temp->suivant;
}
}
int main()
{
liste* ma_liste;
ma_liste=NULL;
int n,i,v,x;
printf("n=");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
ma_liste=ajouter_debut(ma_liste);
}
affiche(ma_liste);
printf("x=");
scanf("%d",&x);
v = nb_occ(ma_liste,x);
printf("le nombre d'occurence est %d \n",v);
system("pause");
return(0);
}
voici le code :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct etudiant
{
char nom[25];
char prenom[20];
int age;
int code;
struct etudiant * suivant ;
};
typedef struct etudiant etudiant;
typedef etudiant liste;
// fonction ajouter debut
liste * ajouter_debut (liste * ma_liste)
{
liste * nouv_etudiant;
nouv_etudiant=(liste*)malloc(sizeof(liste));
printf("le nom est:\n");
scanf("%s",(nouv_etudiant -> nom));
printf("son prenom est: \n");
scanf("%s",(nouv_etudiant -> prenom));
printf("son age est:\n");
scanf("%d",&(nouv_etudiant -> age));
printf("son code est:\n");
scanf("%d",&(nouv_etudiant -> code));
nouv_etudiant -> suivant = ma_liste;
return(nouv_etudiant );
}
//fonction recherche
liste* rech(liste* ma_liste,int x)
{liste *p=ma_liste;
while (p !=NULL)
{ if (p->code == x)
{
return(p);
}
p=p->suivant;
}
return(NULL);
}
//fonction nombre d'occurence
int nb_occ(liste* ma_liste,int x)
{ int cp=0;
if (ma_liste==NULL)
return(0);
else
{
while( (ma_liste = rech(ma_liste,x)) !=NULL)
{
ma_liste=ma_liste->suivant;
cp++ ;
}
return(cp);
}
}
//fonction affiche
void affiche(liste* ma_liste)
{
liste *temp;
temp = ma_liste;
while(temp !=NULL)
{
printf("le nom est %s \n",temp->nom);
printf("son prenom est: %s \n",temp->prenom);
printf("son age est:%d \n",temp->age);
printf("son code est: %d \n \n",temp->code);
temp=temp->suivant;
}
}
int main()
{
liste* ma_liste;
ma_liste=NULL;
int n,i,v,x;
printf("n=");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
ma_liste=ajouter_debut(ma_liste);
}
affiche(ma_liste);
printf("x=");
scanf("%d",&x);
v = nb_occ(ma_liste,x);
printf("le nombre d'occurence est %d \n",v);
system("pause");
return(0);
}
Nous sommes des bénévoles et nous essayons de répondre à un nombre maximum de réponses. Sauf que parfois, les posteurs ne nous aident pas vraiment. Par exemple, si vous aviez posté votre code dans les balises adéquates (balise "code" à droite du bouton "souligné") avec de l'indentation, cela aurait été beaucoup plus agréable à lire et plus simple à trouver l'erreur.
Parfois, les posteurs ne nous mettent pas non plus le message d'erreur qu'ils mentionnent. Comme vous pouvez vous l'imaginer, c'est très utile puisque cela précise d'où vient l'erreur avec la ligne.
Pour ne pas faire un post inutile, j'ai regardé le début du main et déjà, je rencontre une erreur qui peut faire râler le compilateur : int n,i,; (pas de virgule avant le point virgule).
Ce qui nous aiderait aussi, ce serait d'avoir la définition de la structure list.
Cdlt,