begin process at 2012 02 12 08:46:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Corection


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Corection

mercredi 26 octobre 2005 à 15:29:00 | Corection

Hellboy67

donc voila cette source est censé trier le tableau par ordre croissant
mais il ne fait absolument rien
je pense m'etre trompé mais ou ?

#include <iostream>

using std::cout;
using std::cin;
using std::endl;

void remplir (int*, int);
void trie (int*, bool&, int);
void permute (int&, int&);
void affichage (int* , int);

int main ()
{
    int n;
    bool croissant;
    croissant = false;

    cout<<"Entrer le nombre de valeur du tableau : ";
    cin>>n;
   
    int tableau [n];
   
    remplir (tableau, n);
    cout<<endl;
   
    affichage (tableau, n); 
    cout<<endl;
   
    trie (tableau, croissant, n);
   
    affichage (tableau, n); 
    cout<<endl; 
   
    system("pause");
}

void remplir (int tableau [], int n)
{
 int i;
 srand(time(0));
 for (i= 0; i < n; i++)
 {
  tableau [i] = rand () % 100; 
 }   
}  

void trie (int tableau [], bool& croissant, int n)
{
     int a, b, w;
     int i = 0;
     int m = 0;
    
     while (croissant = false)
     {
           for (i = 0; i<n; i++)
           {
               if (i!=0)
               {
                    if (tableau [i] < tableau [i-1])
                    {
                         w = tableau [i];
                         tableau [i] = tableau [i-1];
                         tableau[i-1] = w;
                         m++;
                    }
               }
           }
           if (m==0)
           {
                 croissant = true;
           }      
     }
}

void affichage (int tableau [], int n)
{
     int j;
     for(int j=0; j<n; j++)
     {
             cout << tableau [j];
             cout << "  ";
     }      
     cout << endl;
}

mercredi 26 octobre 2005 à 16:42:22 | Re : Corection

AlexMAN

Membre Club
void trie (int tableau [], bool& croissant, int n)
{
     int a, b, w;
     int i = 0;
     int m = 0;
    
     while (croissant = false)
     {
           for (i = 0; i<n; i++)
           {
               if (i!=0)
               {
                    if (tableau [i] < tableau [i-1])
                    {
                         w = tableau [i];
                         tableau [i] = tableau [i-1];
                         tableau[i-1] = w;
                         m++;
                    }
               }
           }
           if (m==0)
           {
                 croissant = true;
           }      
     }
}

Tu initialises i a 0, et juste apres, tu testes i et si celui ci est egal a 0, tu sors (oui puis ce que m ne sera jamais incrementé)..

+2(p - n)
mercredi 26 octobre 2005 à 16:44:49 | Re : Corection

AlexMAN

Membre Club
Ah excuse moi, lecture en diagonal, pas bon :p


+2(p - n)
mercredi 26 octobre 2005 à 17:43:45 | Re : Corection

ymca2003

Réponse acceptée !

1)

int n;
cout<<"Entrer le nombre de valeur du tableau : ";
cin>>n;
int tableau [n];

=> ca compile ca ? la taille du tableau n'est pas connue à la compilation, ca devrait pas passer.
Il faut faire de l'allocation dynamique.

2)

while (croissant = false)
=> tu entrera jamais dans le while vu que tu fais une affectation (dont le résultat sera false) et non pas un test
while (croissant == false) ou while (!croissant)

3)

ta variable m sert à savoir si tu as échanger 2 valeurs au cours de ta boucle et te permet de savoir si le tableau est trié si m vaut 0
=> il faut l'initialiser à 0 avant chaque boucle for

4)

le main doit renvoyer une valeur.

#include <iostream>

using std::cout;
using std::cin;
using std::endl;

void remplir (int*, int);
void trie (int*, bool&, int);
void permute (int&, int&);
void affichage (int* , int);

int main ()
{
    int n=12;
    bool croissant;
    croissant = false;

//    cout<<"Entrer le nombre de valeur du tableau : ";
 //   cin>>n;
   
    int tableau [12];
   
    remplir (tableau, n);
    cout<<endl;
   
    affichage (tableau, n); 
    cout<<endl;
   
    trie (tableau, croissant, n);
   
    affichage (tableau, n); 
    cout<<endl; 
   
    system("pause");
 return 0;
}

void remplir (int tableau [], int n)
{
 int i;
// srand(time(0));
 for (i= 0; i < n; i++)
 {
  tableau [i] = rand () % 100; 
 }   
}  

void trie (int tableau [], bool& croissant, int n)
{
     int a, b, w;
     int i = 0;
     int m = 0;
    
     while (croissant == false)
     {
   m = 0;
           for (i = 0; i<n; i++)
           {
               if (i!=0)
               {
                    if (tableau [i] < tableau [i-1])
                    {
                         w = tableau [i];
                         tableau [i] = tableau [i-1];
                         tableau[i-1] = w;
                         m++;
                    }
               }
           }
           if (m==0)
           {
                 croissant = true;
           }      
     }
}

void affichage (int tableau [], int n)
{
   
     for(int j=0; j<n; j++)
     {
             cout << tableau [j];
             cout << "  ";
     }      
     cout << endl;
}


 

mercredi 26 octobre 2005 à 17:45:19 | Re : Corection

ymca2003

Dans le code que je vient de mettre j'ai mis en commentaire qqs trucs qui m'empêchait de compiler rapidement sous Visual 6.0
mercredi 26 octobre 2005 à 18:53:31 | Re : Corection

Hellboy67

merci ymca

et pour repondre a ta question 1)
j'utilise dev c++ quand je suis chez moi et j'ai jamais eu de prob pour compiler
mercredi 26 octobre 2005 à 19:39:08 | Re : Corection

ymca2003

Apparement c'est dans la norme ANSI c99 (respectée par dev-cpp mais pas visual 6.0 de 1998).


Cette discussion est classée dans : int, tableau, void, cout, croissant


Répondre à ce message

Sujets en rapport avec ce message

une fiche de renseignement [ par cabarrus ] je cherche à faire un programme qui demande des renseignements pour pouvoir ensuite les affiché comme une fiche d'identité!!!voici monprogramme mais m class.... [ par Tautau ] voila j'ai un petit prob lors de ma compilation et j'ai un test dessus lundi :#include "conio.h"#include "iostream.h"class C_Tableau{ private: Tableau à 3 dimensions [ par VinceExtense ] Savez vous comment faire passer en paramètre un tableau à 3 dimensions ?void fonction1(int x,iny y,int z){int tab[x][y][z];}void fonction2(int ***tab, celà n'enregistre pas [:(!],grrrr [ par oceane67 ] voilà, mon programme n'enregistre toujours pas, je ne sais pas pourquoi, surtout qu'il fait comme si c'etait le cas, je desepesere,voici mon programme grosse panique! [ par oceane67 ] bonjour, c'est encore moi, je n'arrive decidement pas a trouver pourquoi mon programme n'enregistre pas dans les fichiers, c'est la grosse panique, de Probleme de tableau [ par manta7 ] Bonjour, j'ai un petit problème avec la compilationde ce code : int *t; t = malloc(B * sizeof (int)); Je suis sous Microsoft Visual C++ 6 mais je pr Help.... probleme avec un programme de tri de char [ par ratp ] Es ce que vous pouvez m'aider. j'ai réaliser un programme qui normalement doit permettre de trier les caracteres. mais sa ne marche pas. merci de m'ai Urgent SVPPPPP [ par jitalia ] Voilà, pour demain j'ai un devoir en c++ à faire il s'agit d'additionner, multiplier, et soustraire 2 matrice de 4 lignes et 4 colonnes.... Voici ce aide pour ajouter 2 nombre au tableau [ par Rido159 ] [size=100][b]Bonjour je suis débutant en C, j ai besoin de votre aide svp [^^mad5] j ai déclarer un tableau , j ai fais l'initialisation mais je suis Problème de définition de fonction dans une classe [ par labuche75 ] Bonjour à tous, je rencontre un problème à priori de définition de fonction dans la classe tableau permettant de manipuler de grands entiers nécessair


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,011 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales