Le code C pour trouver la valeur max ?
codon21
Messages postés
26
Statut
Membre
-
lucieb31 Messages postés 363 Statut Membre -
lucieb31 Messages postés 363 Statut Membre -
Bonjour,
J'ai cherché dans le forum le code pour trier et trouver la valeur max dans un fichier texte. J'en ai trouvé quelques un. Mais c'est pas en C. Quelqu'un peut me donner le code en C qui fait cela. Par exemple, j'ai un fichier texte comme ci-dessous. Tu peux le mettre dans l'ordre croissant et décroissant et trouver la valeur maximale de cette colonne? Merci beaucoup.
-1329.
-1533.
-1107.
19.
-828.
-625.
-76.
40.
-220.
100.
161.
425.
5648.
5490.
1589.
1660.
1705.
4494.
4365.
4050.
J'ai cherché dans le forum le code pour trier et trouver la valeur max dans un fichier texte. J'en ai trouvé quelques un. Mais c'est pas en C. Quelqu'un peut me donner le code en C qui fait cela. Par exemple, j'ai un fichier texte comme ci-dessous. Tu peux le mettre dans l'ordre croissant et décroissant et trouver la valeur maximale de cette colonne? Merci beaucoup.
-1329.
-1533.
-1107.
19.
-828.
-625.
-76.
40.
-220.
100.
161.
425.
5648.
5490.
1589.
1660.
1705.
4494.
4365.
4050.
A voir également:
- Le code C pour trouver la valeur max ?
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Trouver adresse mac - Guide
- Ou trouver le code puk samsung - Guide
- Comment trouver le mot de passe wifi sur son téléphone - Guide
5 réponses
Lucie merci de ta contribution mais tu as oublié de donné un nom à ta fonction et ça ne répond pas vraiment au problème.
Voici comment faire :
Bonne chance
Voici comment faire :
#include <stdio.h>
#include <limits.h>
int main(int argc,char *argv[0]){
char buffer[255];
char *filename;
double x,max;
int first_max_set = 0;
FILE *fp;
if(argc<2){
fprintf(stderr,"usage: %s filename\n",argv[0]);
return 1;
}
filename = argv[1];
fp = fopen(filename,"r");
if(!fp){
fprintf(stderr,"%s: can't read %s\n",argv[0],filename);
return 2;
}
while(fgets(buffer,255,fp)){
if(sscanf(buffer,"%lf",&x) == 1){
if(!first_max_set){
first_max_set = 1;
max = x;
}else if(x > max) max = x;
}
}
fclose(fp);
printf("max = %lf\n",max);
return 0;
}
Bonne chance
une petite fonction qui cherche le max entre 2 elements passé en argument :
int (int a, int b){
if(a>b){
return(a);
}else{
return(b);
}
a et b etant les chiffre à recuperer dans le fichier
pour trier, il existe plusieur alogrithme de tri que tu peux trouver en cherchant sur google. le principale étant de recuperer les entiers qui sont dans ton fichier et de les mettre dans un tableau
int (int a, int b){
if(a>b){
return(a);
}else{
return(b);
}
a et b etant les chiffre à recuperer dans le fichier
pour trier, il existe plusieur alogrithme de tri que tu peux trouver en cherchant sur google. le principale étant de recuperer les entiers qui sont dans ton fichier et de les mettre dans un tableau
Salut,
Voici un programme qui te permettra de récupérer le contenu de ton fichier dans un tableau.
Il te reste plus qu'à trouver le maximum et à trier ton tableau. Ca je te laisse faire, c'est du classique ;-))).
Cdlt
Voici un programme qui te permettra de récupérer le contenu de ton fichier dans un tableau.
Il te reste plus qu'à trouver le maximum et à trier ton tableau. Ca je te laisse faire, c'est du classique ;-))).
#include <stdio.h>
#include <stdlib.h>
#define MAX 50
int main(void){
FILE *fp=fopen("tmp.log","r");
if(fp==NULL){
fputs("erreur ouverture fichier\n",stderr);
return 0;
} else{
//remplissage tableau
char buffer[12];
double tab[MAX];
size_t nbElt=0;
while(fgets(buffer,sizeof buffer,fp)){
tab[nbElt++]=strtod(buffer,NULL);
}
fclose(fp),fp=NULL;
//affichage
for(size_t i=0;i<nbElt;i++){
printf("%.0f ",tab[i]);
fflush(stdout);
}
putchar('\n');
}
return 0;
}
Cdlt
suffit qu'il integre la fonction que j'ai ecrite, en y rajoutant un nom bien sur que j'ai oublié, dans son programme principale, plutot que d'ecrire un gros bloc avec tout dedans.
@+
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question