Calcul d'une moyenne depuis un fichier
Bonjour,
J'ai un exo de langage C que je n'arrive pas à résoudre. En fait, supposant un fichier qui se présente comme ceci :
1 vcxbvcxv gfdsgfds gtfrdegfd 12.50 13.00 17.25
2 ddrtyghyu ertyu qrtyuvfgh 09.00 11.75 10.00
3 GERTYUI ERTYUKG ZERTYUY 14.50 15.75 14.00
je veux faire un programme qui parcourt ce fichier calcul la moyenne de chaque eleve dans un autre fichier resultat.txt qui se presente comme ceci
N° NOM ET PRENOMS NOTES MOY
1 vcxbvcxv gfdsgfds gtfrdeg 12.50 13.00 17.25 14.25
2 ddrtyghyu ertyu qrtyuvf 09.00 11.75 10.00 10.25
3 GERTYUI ERTYUKG ZEED 14.50 15.75 14.00 14.75
J'ai essayé ce code qui, pour moi, devait marcher mais ça ne se passe comme je veux. Alors si quelqu'un peut m'aider, voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| #include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
int main()
{
FILE *fichier=NULL;
FILE *fichier1=NULL;
char c,nomfichier[80];
//float tableau[30];
int s,j=0,i=0;
double somme=0;
char i_tableau[20];
printf("entrer le nom du fichier avec l'extension .txt\n");
scanf("%s",nomfichier);
if(strcmp(nomfichier,"")!=0)
fichier=fopen(nomfichier,"r");
fichier1=fopen("resultat.txt","w+");
if(((fichier==NULL)&&(fichier1==NULL))||(fichier==NULL)||(fichier1==NULL)){
fprintf(stderr,"%s ne peut pas s'ouvir il se peut qu'il n'existe pas\n",nomfichier);
exit(-1);}
else
// s=fscanf(fichier,"%s",&c);
while( (c=fgetc(fichier))!=EOF)
{
fputc(c,fichier1);
}
fclose(fichier);
fclose(fichier1);
fichier1=fopen("resultat.txt","ab");
if(fichier1==NULL)
{
printf("impossible d'ouvir resultat.txt");
exit(-1);
}
else
c=fgetc(fichier1);
while( c!=EOF)
printf("\t yes");
{
printf("bonsoir\n");
if((s=fscanf(fichier1,"%s",&c))!='\0') /*tanqu'on n'est pas a la fin de la ligne*/
{
printf("yes\n");
if(isdigit(s)==1) /*si le caractere lu est un nombre decimal*/
{
printf("salut\n");
while(isspace(s)!=1) /*tanqu'on a pas trouvé un espace blanc*/
{
printf("bonjour\n");
i_tableau[j]=s;
atof(&i_tableau[j]);
somme+=i_tableau[j];
j++;
i++;
}
for(j=0;j<=i;j++)
{
printf("%.2d",i_tableau[j]);
}
}
}
c=fgetc(fichier1);
}
getchar();
return 0;
} |