CORRECTION TD 5
Ex 1:
# include <stdio.h>
typedef struct rat_t{
int num;
int den;
}rat_t;
/* prototypes */
rat_t lit_rat(void);
void affiche_rat(rat_t c);
rat_t somme_rat(rat_t c1, rat_t c2);
rat_t produit_rat(rat_t c1, rat_t c2);
/* principale */
int main(){
rat_t r1,r2,r3, s,p,res ;
r1=lit_rat();
r2=lit_rat();
r3=lit_rat();
s=somme_rat(r1,r2);
p=produit_rat(s,r3); /* ou p=produit (somme(r1,r2),r3) */
affiche_rat (p);
return 0;
}
rat_t lit_rat(){
rat_t c;
printf (" donner deux entiers a et b pour le rationnel (a/b)\n");
scanf("%d",&[Link]);
scanf("%d",&[Link]);
return c;
}
void affiche_rat(rat_t c){
printf ("(%d/%d)\n",[Link],[Link]);
}
rat_t somme_rat(rat_t c1, rat_t c2){
rat_t c;
[Link]=[Link]*[Link] + [Link]*[Link] ;
[Link]=[Link]*[Link];
return c;
}
rat_t produit_rat(rat_t c1, rat_t c2){
rat_t c;
[Link]=[Link] * [Link];
[Link]=[Link] * [Link];
return c;
}
1
EX 2 :
#include <stdio.h>
int main(){
FILE * f ;
char cNom [80] ; char cPrenom [80] ; int code; char cFiliere [80]; int age ;
f = fopen ("[Link]", "r") ;
if (f==NULL)
printf(" Impossible d’ouvrir le fichier") ;
else{
while (fscanf(f, "%s%s%d%s%d", cNom, cPrenom, &code, cFiliere, &age) !=EOF)
printf (" %s %s %d %s %d\n", cNom, cPrenom, code, cFiliere, age) ;
}
fclose (f) ;
return 0;
}
EX 3 :
#include <stdio.h>
void main(){
FILE * f ;
const int iNB_com=100;
int i;
struct personne{
char cNom [80] ;
char cPrenom [80] ;
int code;
char cFiliere[80];
int age ;
};
struct personne tab [100] ;
int iIndex, iDerniers ;
f = fopen ("[Link]", "r") ;
if (f==NULL)
printf(" Impossible d’ouvrir le fichier") ;
else{
iIndex=0 ;
while (iIndex<iNB_com && fscanf(f," %s%s%d%s%d", tab[iIndex].cNom,
tab[iIndex].cPrenom, & tab [iIndex].code, tab[iIndex].cFiliere, &tab[iIndex].age) !=EOF)
iIndex++ ;
for ( i = 0 ; i < iIndex ; i++)
printf (" %s %s %d %s %d\n", tab[i].cNom, tab[i].cPrenom, tab [i].code,
tab[i].cFiliere, tab[i].age ) ;
fclose (f) ;
}
}
2
EX 4 :
#include<stdio.h>
int compteCarFich(char nomFichier[]){
FILE *f = fopen(nomFichier,"r");
if (f==NULL)
return -1;
int nbC = 0;
char c;
while (fscanf(f,"%c",&c) != EOF)
nbC++;
fclose (f);
return nbC;
}
int main(){
printf ("Nombre de caractères = %lu\n",compteCarFich("[Link]"));
return 0;
}