Bonjour,
Actuellement étudiant, je débute en C++.
J'avais pour exercice de créer un programme permettant de trier 10 chiffres, voici le code :
Code :
- #define N 10
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- int pos_max(int t[], int p);
- int main()
- {
- srand(NULL);
- int t[N];
- int m;
- for(int i=0; i<N; i++)
- {
- t[i]=rand()%9;
- cout <<t[i]<< " ";
- }
- cout << endl;
- m=0
- for (; m<N; m++)
- {
- cout << m << " " << N << endl;
- int p=pos_max(t, N-m);
- cout << p << endl;
- int aux= t[p];
- t[p]=t[N-m];
- t[N-m]=aux;
- }
- for (int i=0; i<N; i++)
- {
- cout <<t[i]<< " ";
- }
- return 0;
- }
- int pos_max(int *t, int p)
- {
- int pmax=0;
- for (int i=0; i<p; i++)
- {
- if (t[i]>t[pmax])
- {
- pmax=i;
- }
- }
- return pmax;
- }
|
Le probleme est que le "m" démarre à 10 ( cf. Le cout que j'ai placé. voici le resultat d'une simulation :
6 6 5 7 7 6 1 1 2 4
10 10
0
6 6 5 7 7 6 1 1 2 4 .
Je ne comprend pas pourquoi m ne commence pas a 0 puis 1....
Merci d'avance,
berse
Message édité par berserendo le 24-09-2009 à 23:33:07