Question en : Langague C Le Max, SVP !

Yasmine -  
JooS Messages postés 2705 Statut Membre -
Bonjour,

j'ai écris un script en langage C qui de demande de remplir une table
après on fais un filtrage qui affiche les 4 max par exmple :

si la table était comme ca :

12
32
15
24
59
5
le script vas affichier que ca :

59
32
24
15

voila le code :

int i,n,t[20],max=0,maxo=0;

printf("Entre des chifres : ");
scanf("%i",&n);
for(i=0;i<n-1;i++){
printf("\nEntre le contenu : ");
scanf("%i",&t[i]);
}
for(i=0;i<4;i++){
max=t[0];
for(i=0;i<n-1;i++){
if(maxo!=max){
if(t[i]>max){
max=t[i];
}
}
}
maxo=max;
printf("Le max est %i",max);

}

7 réponses

  1. Dr.W Messages postés 406 Statut Membre 40
     
    Salut !

    Quel est le problème?
    0
  2. yasmine
     
    le problème c'est que ce programme n'affiche que un seule nombre !

    Merci
    0
  3. Dr.W Messages postés 406 Statut Membre 40
     
    Bah c'est normal la variable max ne peut contenir qu'un seul nombre, sinon il faut faire un tableau, comme ton 't'.
    0
  4. yasmine
     
    tu peux me dire comment faire si ca te dérange pas ^^

    Merci d'avance .
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Dr.W Messages postés 406 Statut Membre 40
     
    Bah la il aut changer pas mal de code, reflechis un peu, c'est pas drole si je le fais a ta place :P
    0
  7. JooS Messages postés 2705 Statut Membre 228
     
    Salut ...
    Y a plusieurs methodes de tri, or la plus basique etant le tri par selection ... donc ...

    int i, j, t[20], var, max;  
    printf("Combien de nombres comptez vous trier ? ");     
    scanf("%d",&n);     
    
    for(i=0;i<n;i++)    
        scanf("%d",&t[i]);       
    
    for(i=0;i<n;i++) {     
        max = i;
            
        for(j=i+1;j<n;j++)     
            if(t[max] < t[j]) max = j;
            
        var = t[i];    
        t[i] = t[max];    
        t[max] = var;    
    }    
    
    printf("Le Nouveau tableau : \n");     
    for(i=0; i<4; i++)    
        printf("%d\n",t[i]);
    0
    1. Dr.W Messages postés 406 Statut Membre 40
       
      Bah bravo... Ou est l'interet il va copier/coller le code et le comprendre a moitie....

      Le tri a bulle est assez simple a comprendre et a code aussi.
      0
    2. JooS Messages postés 2705 Statut Membre 228
       
      y a pas non plus d'intérêt a ne pas répondre ...
      Moi j'ai appris a comprendre en analysant les réponses (le code)...

      Quant au fait de rechercher sur Google, ben j'ai répondu en supposant qu'elle a pris le temps de chercher ...

      Sinon, je mettrais des explications en cas de besoin ...
      0
    3. Dr.W Messages postés 406 Statut Membre 40
       
      Apprendre les variables, les pointeurs/tableau, les structures/objet et les structure de control en lisant du code ok, c'est meme ce qu'il y a de plus efficace :)

      Mais pour de l'algorithmie .... Une fois que t'as donner la reponse t'as spoil le cerveau du mec... Qui ne trouvera pas la reponse par son propre raisonement... Bref, ca part d'une bonne intention, c'est l'essentiel.
      0
    4. JooS Messages postés 2705 Statut Membre 228
       
      Une bonne intention !!!, oui je sais, et heureusement :) ...

      Et comme je le dit plus haut, j'ai répondu en prétendant que la personne a chercher avant de faire appel a quelqu'un ...
      Si c'est pas le cas, je ne veut pas être comme certaines personnes (La plupart des modérateurs) qui a presque chaque intervention disent "Google est ton ami", et postent des liens qui dans certains cas sont bidons ...

      Et je veut pas a chaque fois demander a la personne si elle a bien chercher autre part parce que je trouve que c'est stupide ...

      Je pense que toute personne qui demande de l'aide sur un forum, c'est qu'elle a bien chercher autre part, et qui n'a rien trouver ...

      Voila ...

      Cordialement ...
      0
  8. apahna Messages postés 13 Statut Membre
     
    bjr yasmine
    dsl du 2009 j pa utiliser le c mai je pense que vous devez utiliser n-1 au lieu de 4 car si vous ecrivez
    for(i=0;i<4;i++) il affiche que t[0], t[1], t[2], t[3] donc tu doit mentionné dans votre boucle le n-1
    ..un autre conseil: terminer votre programe avec l'instruction getch() qui permer de fixer l'affichage

    bon courage yasmine j plein de cour j vous envoyé certaine qui vs aide peut etre
    salam
    0