|
|
|
|
Bonsoir,
voilà j'ai fait un programme de tri à bulle
le sujet
l'utilisateur saisit 3 valeurs.
Le programm affiche ces trois valeurs dans l'ordre croissant.
mon programme (j'ai pas mis saisir les 3 valeurs car je voulais tester mon tri à bulle mais ça marche pas)
#include "stdafx.h"
#include <iostream>
using namespace std;
void tribulle(int tableau[],int n);
void afficheliste(int tableau[],int n);
void echange(int tableau[],const int i,const int j);
const int taille=10;
int main()
{
int listeATrier[10]={6,3,0,9,1,7,8,2,5,4};
cout<<"Etat iniail :"<<endl;
afficheListe(listeATrier,taille);
cout<<"Debut de l'algo"<<endl;
tribulle(listeATrier,taille);
cout<<"Fin de l'algo"<<endl;
return(0);
}
void tribulle(int tableau[],int n)
{
int i;
bool inversion;
do
{
inversion=0;
for(i=0,i<n-1;i++)
{
if(tableau[i]>tableau[i+1])
{
echange(tableau,i,i+1);
inversion=1;
}
}
n--;
}
while(inversion);
}
void afficheliste(int tableau[],int n)
{
for(int i=0;i<n;i++)
{
cout<<tableau[i]<<" "<<endl;
}
cout<<endl;
}
void echange(int tableau[],const int i,const int j)
{
int temporaire;
temporaire=tableau[i];
temporaire=tableau[j];
tableau[j]=temporaire;
}
je ne vois pas trop mes erreurs là
si quelu'un pourrait m'aider à comprendre ce problème
merci à ceux qui m'aider
Configuration: Windows XP Internet Explorer 7.0
Martin
plop.cpp: In function ‘int main()’: plop.cpp:17: error: ‘afficheListe’ was not declared in this scope plop.cpp: In function ‘void tribulle(int*, int)’: plop.cpp:35: warning: right-hand operand of comma has no effect plop.cpp:35: error: expected `;' before ‘)’ token - C'est afficheliste (pas afficheListe) - Dans ton for (ligne 35) tu as mis une virgule au lieu du point virgule Quelques recommandations : - compile avec les options de warning (-W -Wall pour g++) - évite d'utiliser des headers non standard (par exemple #include "stdafx.h" ) - évite d'utiliser l'instruction "using namespace std;". Si dans un fichier source (.cpp) c'est indolore il ne faut pas l'utiliser dans un header (.hpp). En effet le namespace std:: sert à éviter les conflits entre les classes de la STL et les classes que tu peux éventuellement utiliser par ailleurs. marwa La fonction main est toujours sensée retournée un int (code d'exécution). Par convention si tout s'est bien passé le main retourne 0 (ou EXIT_SUCCESS), sino nil retourne un code d'erreur (valeur non nulle). main peut éventuellement prendre des paramètres (traditionnellement notés argc et argv) quand le programme est lancé avec des paramètres. Exemple : #include <iostream>
int main(int argc,char **argv){
for(int i=0;i<argc;++i){
std::cout << i << '\t' << argv[i] << std::endl;
}
return 0;
}
Donne à l'exécution (ici l'executable s'appelle plop.exe) : (mando@aldur) (~) $ ./plop.exe plop tapir miam 0 ./a.out 1 plop 2 tapir 3 miam Bonne chance |
Merci mamiemando pour ton aide
|
Ca veut dire que tu utilises une fonction tribulle qui n'est pas définie. Typiquement les majuscules et minuscules ont une importance dans le nom des symboles (variables fonctions types...).
|
J'ai trouvé mon erreur j'avais dans le "void tribulle" un "l" en trop c'est pour qu'il ne trouver pas
|
Ca c'est en anglais pour toi ? Avec les commentaires en français ? Pour moi c'est écirt en pascal, php, java, C, C++
|