Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Corection [ Archives / Au secours ] (Hellboy67)

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é 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 Pb de tableau et de listbox [ par sran_isback ] Bonjour ! j'ai un ptit probléme concernant un tableau a afficher dans une listbox! j'aimerais bien qu'il m'affiche les nombres de 1 à cents mais toute Opérateur de comparaison dans une classe générique [ par benjiiim94 ] Bonjour, Je crois que pas mal d'infos sont dans le titre, il ne manque plus que la source de la classe : #pragma once #include "StdAfx.h" using n


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.