Probléme avec un programme

Résolu
BloodKnight Messages postés 17 Statut Membre -  
ta9tou9a Messages postés 5 Statut Membre -
Bonjour,
je ne sais pas c'est quoi le problème de ce programe :
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>#include<string.h>
#include<time.h>
#include<windows.h>
struct departement {
float numdept;
char nomdept[20];
char lieudpt[20];
};
struct employes{
float cod;
char nom[20];
char datemb[88];
float slr;
float cms;
float numdept;
};
typedef struct employes emp;
typedef struct departement dep;
void saisir(emp t,FILE *fei)
{
int n=0,test;
printf("*** donner les informations sur les employees ***\n");
printf("*** pour soritr donner le code zero ***\n");
fei=fopen("employés.txt","w");
test=1;
do
{
printf("*** donner le code du %d employee ***\t\n",n+1);
scanf("%f",&t.cod);
test=t.cod;
printf("*** donner le nom du %d employee ***\t\n",n+1);
scanf("%s",t.nom);
printf("*** donner la date d'embauche du %d employee ***\t\n",n+1);
scanf("%s",t.datemb);
printf("*** donner le salaire du %d employee ***\t\n",n+1);
scanf("%f",&t.slr);
printf("*** donner la comission du %d employee ***\t\n",n+1);
scanf("%f",&t.cms);
printf("*** donner le numero du departement du %d employee ***\t\n",n+1);
scanf("%f",&t.numdept);
fwrite(&t,sizeof(emp),1,fei);
n++;

} while(test=!0);
fclose(fei);
}
int main()
{
FILE *fei;
emp e;
int n;
saisir(e,fei);
getch();
return 1;
}

même si je donne un code qu est zero la boucle while ne s'arrête pas.
merci d'avance les amis.
Configuration: Windows XP
Firefox 2.0.0.11

2 réponses

  1. le père
     
    Bonjour

    en première approche :
    il faut mettre (test!=0)
    pas (test=!0)
    1
    1. ta9tou9a Messages postés 5 Statut Membre 2
       
      bonjour, s'il vous plait quel est le prob sans ce programe :

      program moyenne;
      uses wincrt;
      const k=31;
      type tab1 = array [5..k] of real;

      procedure saisie(var n: real;var t: tab1);
      var
      i: integer;

      begin
      repeat
      write('donner la taille du tableau =' );readln(n);
      until (n in [5..31]);
      for i:=1 to n do
      begin
      write('donner t[ ', i,']:'); readln(t[i]);
      end;
      end;

      procedure tri(n:real; var t:tab1);
      procedure permut(var x,y: real);
      var
      a: real;
      begin
      x:=a;
      a:=y;
      y:=x;
      end;

      var
      t: tab;
      j: integer;
      echange: boolean;
      begin
      repeat echange:= false;
      for j:=1 to n do
      begin
      if t[j]>t[j+1] then permut();
      echange:= true;
      end;
      n:=n-1; until (n=1) or (non(echange));
      end;

      procedure taux(var m: integer; t:tab1; a: real );
      var
      m: inetger;
      i: integer;
      begin
      m:=0;
      for i:=1 to n do
      if (t[i]>=10) then m:=m+1;
      a:=((m/n)*100);
      write('le taux de reussite est ',a,'%');
      end;
      var
      n: real;
      t: tab1;


      begin
      saisie(n,t);
      tri(n,t);
      write('la moyenne la plus elevee est ',t[n]);
      taux(var m: integer; t:tab1; a: real)
      end.
      0
  2. BloodKnight Messages postés 17 Statut Membre
     
    merci j ai pas fait attention
    j ai un autre problem mon ami comment puis je lire a partir de ce fichier :) merci beaucoup
    0