Le code C pour trouver la valeur max ?

codon21 Messages postés 26 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.

5 réponses

mamiemando Messages postés 34231 Date d'inscription   Statut Modérateur Dernière intervention   7 897
 
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 :
#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
2
lucieb31 Messages postés 363 Statut Membre 62
 
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
1
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Salut,
Il manque un nom à ta fonction ;-)))
Cdlt
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
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 ;-))).

#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
1
lucieb31 Messages postés 363 Statut Membre 62
 
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.
@+
1
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Voici sa question :
pour trier et trouver la valeur max dans un fichier texte

Ton fonction retourne juste le maximum entre deux nombres.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lucieb31 Messages postés 363 Statut Membre 62
 
a inclure dans un programme qui recupere les nombres dans le fichier, et qu'il suffira de passer en paramettre de la fonction. je n'ai pas dit que ça repondait entierement a sa question. je vais pas lui ecrire tout le programme non plus.
bye
1