Probléme avec un programme

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. merci j ai pas fait attention
    j ai un autre problem mon ami comment puis je lire a partir de ce fichier :) merci beaucoup
    1. Bonjour

      en première approche :
      il faut mettre (test!=0)
      pas (test=!0)
      1. 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.