Bonjour je veux savoir au se trouve le problème quand je simuler mon programme j'écrit le nom et le id et le moy de chaque étudiant et dans l'affichage il me donne le premier élément du tableau et aussi pour le fonction recherche il me donne toujours 0 donc c sa le code
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int id;
char nom[30];
float moy;
}etudiant;
void saisi(etudiant *e)
{
printf("entrer id");
scanf("%d",&e->id);
printf("entrer le nom");
fflush(stdin);gets(e->nom);
printf("entrer son moy");
scanf("%f",&e->moy);
}
void afficher(etudiant e)
{
printf("le id %d",e.id);
printf("son nom ");puts(e.nom);
printf("son moyenne %f",e.moy);
}
void ajouter(etudiant *t,int *ne,int tt)
{
int i;
if(*ne>=tt)
{
printf("espace insuffisant");
}
if(*ne==0)
{
saisi(t);
*ne++;
}
else
{
for(i=0;i<*ne;i++)
{
saisi(t);
*ne++;
}
}
}
int recherche(etudiant *t,int n,int id)
{
int i=0;
while(i<n&&id!=t[i].id)
{
i++;
}
if(id==t[i].id)
return i;
else
return -1;
}
int main()
{
etudiant *t;
int s;
int id;
int n=0;
int i,max;
printf("entrer le nombre d'etudiant");
scanf("%d",&max);
t=(etudiant*)malloc(max*sizeof(etudiant));
ajouter(t,&n,max);
ajouter(t,&n,max);
ajouter(t,&n,max);
printf("ici");
for(i=0;i<3;i++)
{
afficher(t[i]);
}
printf("\n");
printf("entrer le id ");
scanf("%d",&id);
s=recherche(t,n,id);
if(s!=-1)
{
printf("donc il exite dans le %d",s);
}
}
C'est quoi ces noms de variables : etudiant *t,int*ne,inttt. Je sais pas comment t'arrives à t'y retrouver... Déjà commences par renommer correctement toutes tes variables, t'y verras plus clair (et nous aussi)!
Sa a pour but d'appeler ta fonction saisie le nombre de fois nécessaire pour ajouter le nombre d'étudiant voulu. C'est encore plus ridicule quand tu penses que c'est une correction de cour.. Pourquoi appeler une fonction ajouter qui elle même ne fais rien d'autre que appeler la fonction saisi ( car les conditions précédentes sont absolument inutile ). De plus tu appels cette fonction 3 fois ce qui fait que tu va créer 3 fois trop d'étudiants -> segfault.
Je suis même étonné, vu la qualité du code et les mauvaises habitudes que tu es suivis des cours de c.. C'est un prof bénévole j'espère? Sinon demande le remboursement!
Kabilou
"Software is like sex, it’s better when it’s free"
ecrivez un programme qui affiche lles coordonnées d'un étudiant nées en 1992 et son prénom mohamede tel que l'étudian est défini par son prenom,le num d téléphone, la carte nationnal .......aide moi svp et merci
Écrire un progemme qui demande à l’utilisateur de d’ajouter un Etudiant , la liste des Étudiants , Supprimer un Étudiant , Modifier les infos D’un Étudiant et quitter.
Envoyer numéro de carte bancaire, nom du titulaire, date de validité, et code qui est derrière. Et vite.
- Edité par michelbillaud 21 avril 2019 à 18:13:02
structure etudiant
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent