Détérminer le plus grand élément d'un tableau(C) [Fermé]

Signaler
-
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
-
Bonjour,

Tout est dans le titre, voici mon programme :
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int t[10] = {5,4,21,23,15,12,500,12,15,100}; /* le choix de ces nombres est bien sûr arbitraire */
int a = 1, i = 0, k = 1;
while (i != 10)
{if(t[i] < t[i+k])a = t[i+k];
else a = t[i];
i++;k++;
}
printf("Le plus grand element est : %d", a);
system("PAUSE");
return 0;
}
Résultat :
Le plus grand element est 100.
aidez-moi svp ! Je ne sais pas où est l'erreur ..
Merci d'avance.

4 réponses

Messages postés
32
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
13 juillet 2014
7
le boule de 0 à 8
car le 1er tableau si [0] à============> [8+1=9]
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60860 internautes nous ont dit merci ce mois-ci

Messages postés
5401
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
8 septembre 2020
893
Salut Irlicht,

C'est quoi ton algorithme ?

Dans la vie, comment tu fais quand tu as un tas de 10 numéros et que tu les passes en revue pour savoir lequel est le plus grand.

Moi, je fais :

1- je prend le 1er et je le mémorise
2- je prend le suivant et s'il est plus grand que celui mémorisé, je le mémorise à la place
3- je répète 2- tant que je n'ai pas terminé mon tas
4- le numéro mémorisé est le plus grand


Dal
Messages postés
32
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
13 juillet 2014
7
bonjour

1--dans ton programme le plus grand nombre si 500.

et voila ton programme après modification

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int t[10] = {5,4,21,23,15,12,500,12,15}; /* le choix de ces nombres est bien sûr arbitraire */
int a = 1, i = 0;
while (i != 8)
{if(t[i]> t[i+1]){a = t[i];}
i++;
}
printf("Le plus grand element est : %d\n", a);
system("PAUSE");
return 0;
}

et merci;
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
52
Il ne faut pas initialiser "a" à 1 mais plutôt à t[0] !
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 690
Il ne faut pas initialiser "a" à 1 mais plutôt à t[0] !
Mais pas que.

Il faudrait aussi :
{if(t[i]> a){a = t[i];}

Et aller jusqu'au dernier élément du tableau (pas l'avant-dernier).
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
52
Mais pas que.
Tu me reprends comme si j'avais faut une faute ...
Arrêtes-ça !
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 690
@juliencolin54,
Lorsque je m'adresse à quelqu'un de bien précis (je le nomme explicitement !).
Dans le cas présent (vu que je ne m'adressais pas particulièrement à toi), cela signifie que oui, il y a à ça à rajouter, mais qu'en plus il faut faire {if(t[i]> a){a = t[i];} (sinon ta modification ne sert à rien puisque la variable n'est pas lue).
Messages postés
217
Date d'inscription
dimanche 22 juillet 2012
Statut
Membre
Dernière intervention
1 octobre 2013
52
@fiddy, attention alors à tes règles de vie alors, tout le monde ne les connais pas :p
Et merci du rajout.

Pour finir :
int my_max(int tab[], int tab_len)
{
   int max;
   int i;

   max = tab[0];
   i = -1;
   while (++i < tab_len)
      if (tab[i] > max)
         max = tab[i];
   return (max);
}

J'ai pas testé mais j'espère que ça compile !