Petite aide en C++

Fermé
chikhaoui5 Messages postés 266 Date d'inscription mardi 17 février 2009 Statut Membre Dernière intervention 21 février 2012 - 17 févr. 2009 à 22:13
Gokuronkyo Messages postés 53 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 2 février 2019 - 18 févr. 2009 à 19:09
Bonjour,

svp mais amis est ce que quelqu'un peut m'aider a corriger ce petit programme en c et merci d'avance

#include<stdio.h>

#include<stdlib.h>
#include<conio.h>
int choix;
/*FONCTION SAISIE_TAILLE*/
int saisie_taille()
{
int n;
{


printf("''''''''''''''''''''''''''''''''''''''''''''\n");
printf("\n");
printf("PROJET FAIT PAR*****chikhaoui*******\n");
printf("\n");
printf("''''''''''''''''''''''''''''''''''''''''''''\n");
do
{
printf("donner la taille du tableau t1 est t2\t");
scanf("%d",&n);
}
while((n<1)||(n>50));
return (n);
}
/*FONCTION CHARCHEMENT*/
void chargement(int t1[],int n)
int i;
for(i=0;i<n;i++)
{
do
{
printf("'''''''''''''''''''''''''''''''''''''''''''\n");

printf("t[%d]\t",i);
scanf("%d",&t1[i]);
}while (t1[i]<0);
}
}
/*FONCTION AFFICHER*/
void affiche(int t1[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d\t\a",t1[i]);
}
printf("\n");
}
/*FONCTION RECHERCHE*/

void recherche(int t1[],int n)
{
int i,min,x,A,c[50];

x=0;
printf("donner un entier\n");
scanf("%d",&A);
for(i=0;i<n;i++)
{
if (t1[i]>A)
{
printf("%d\t",t1[i]);
c[x]=t1[i];
x++;
}
}
if(x>1)
{
min=c[0];
for(i=1;i<x;i++)
{
if(c[i]<min)
min=c[i];
}
printf("\nle plus petit element superieur a %d et : %d\n",A,min);
}
else
printf("entier n'existe pas\n");


}
/*FONCTION TRANSFERE*/
void transfere(int t1[],int t3[],int n)
{
int i,j,k;

j=0;
k=n-1;
for(i=0;i<n;i++)
{

if(i%2==0)
{
t3[j]=t1[i];
j++;
}
else
{
t3[k]=t1[i];
k--;
}
}
affiche(t3,n);
getch();
}
/*FONCTION SYMETRIQUE*/
int symetrique(int t1[],int n)
{
int i,sym;

sym=1;
i=0;
while((sym==1)&(i<n))
{
if(t1[i]!=t1[n-i-1])
sym=0;
else
i++;
}
if(sym==1)
{
gotoxy(30,15);
printf("t1 est symetrique"); }
else
{
gotoxy(30,15);
printf("t1 n'est symetrique");
}
getch();

return (sym);
}
/*FONCTION DETERMINER*/
int determiner(int t1[],int n)
{
int oc,nb,i,j;
clrscr();
oc=0;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(t1[i]==t1[j])
{
oc++;
}
}
}
nb=n-oc+1;
printf("le nombre d'element distint est%d\t",nb);
getch();

return (nb);
}
/*FONCTION INSERTION*/
void insertion(int t1[],int n)
{
int i,pos,val,m;
clrscr();
printf("donner la valeur a inserer");
scanf("%d",&val);
do
{
printf("donner la position d'insertion");
scanf("%d",&pos);
}while((pos>n)||(pos<0));
m=n+1;
for(i=m;i>pos;i--)
{
t1[i]=t1[i-1];
}
t1[pos]=val;

affiche(t1,m);
getch();

}
/*FONCTION INVERSE*/
void inverse(int t2[],int n)
{
int i,j,aux;
clrscr();
for (i=0,j=n-1;i<j;i++,j--)
{
aux=t2[i];
t2[i]=t2[j];
t2[j]=aux;
}
affiche(t2,n);
getch();

}
/*FONCTION ROTATION*/
void rotation(int t2[],int n)
{
int i,aux;
clrscr();
aux=t2[n-1];
for(i=n;i>0;i--)
{
t2[i]=t2[i-1];
}
t2[0]=aux;
affiche(t2,n);
getch();


}
/*FONCTION COMPACTER*/
void compacter(int t1[],int n)
{
int i,j,nb,m,x;
clrscr();
x=n;
nb=0;
i=0;
while(i<x)
{
if(t1[i]%2==0)
{
for(j=i;j<n;j++)
{
t1[j]=t1[j+1];
}
nb++;
x--;

i--;}
i++;
}
printf("le nombre d'element supprime est %d\n",nb);
m=n-nb;
if(m==n-1)
{
printf("tableau supprimé");
}
else
{
affiche(t1,m);
}
getch();

}
/*FONCTION RECH_SEQUENTIELLE*/
int rech_seq(int t2[],int n)
{
int c,rech,v;
clrscr();
printf("donner la valeur a rechercher");
scanf("%d",&v);
c=0;
do
{
c++;
}
while((t2[c]!=v)&&(c!=n));
if(t2[c]==v)
{
rech=1;
}
else
{
rech=0;
}
if(rech==1)
{
printf("element existe");
}
else
{
printf("element n'existe pas");
}
getch();

return (rech);
}
/*FONCTION TRI_BULLE*/
void tri_bulle(int t2[],int n)
{
int permut,i,aux;
clrscr();
do
{
permut=0;
for(i=0;i<n-1;i++)
{
if(t2[i]>t2[i+1])
{
aux=t2[i];
t2[i]=t2[i+1];
t2[i+1]=aux;
permut=1;
}
}
} while(permut!=0);
affiche(t2,n);
getch();
}
/*FONCTION RECH_DICHOTOMIQUE*/
int rech_dich(int t2[],int n)
{
int g,d,i,rech_di,v;
clrscr();
tri_bulle(t2,n);
printf("donner la valeur a rechercher");
scanf("%d",&v);
g=0;
d=n-1;
do
{
i=(g+d)/2;
if(v<t2[i])
{
d=i-1;
}
else
{
g=i+1;
}
}
while((v!=t2[i])&&(g>d));
if (v==t2[i])
rech_di=1;
else
rech_di=0;
if(rech_di==1)
{
printf("element existe");
}
else
{
printf("element n'existe pas");
}
getch();

return (rech_di);
}
/*FONCTION TRI_SELECTION*/
void tri_selection(int t2[],int n)
{
int i,j,indmin,aux;
clrscr();
for(i=0;i<n-1;i++)
{
indmin=i;
for(j=i+1;j<n;j++)
{
if(t2[j]<t2[indmin])
{
indmin=j;
}
}
aux=t2[i];
t2[i]=t2[indmin];
t2[indmin]=aux;
}
affiche(t2,n);
getch();

}
/*FONCTION TRI_INSERTION*/
void tri_insertion(int t2[],int n)
{
int aux,i,j,pos;
clrscr();
for(i=1;i<=n;i++)
{
pos=i-1;
while((pos>=0)&&(t2[pos]>t2[i]))
{
pos--;
}
pos=pos+1;
aux=t2[i];
for(j=i-1;j>=pos;j--)
{
t2[j+1]=t2[j];
}
t2[pos]=aux;
}
affiche(t2,n);
getch();

}

int menu_principale()
{
int choix;
clrscr();
gotoxy(10,5);
printf("MENU GENERALE");
gotoxy(15,6);
printf("1***Recherche\n");
gotoxy(15,7);
printf("2***transfére\n");
gotoxy(15,8);
printf("3***Symetrique\n");
gotoxy(15,9);
printf("4***Determiner\n");
gotoxy(15,10);
printf("5***Insertion");
gotoxy(15,11);
printf("6***invertion\n");
gotoxy(15,12);
printf("7***Rotation\n");
gotoxy(15,13);
printf("8***Compacter\n");
gotoxy(15,14);
printf("9**Recherche");
gotoxy(20,15);
printf("1****Recherche_sequentielle\n");
gotoxy(20,16);
printf("2****Recherche_dichotomique\n");
gotoxy(15,17);
printf("10**TRI\n");
gotoxy(20,18);
printf("1**Tri_insertion\n");
gotoxy(20,19);
printf("2***Tri_bulles\n");
gotoxy(20,20);
printf("3***Tri_selection\n");
gotoxy(20,21);
printf("11**Quitter\n");
gotoxy(30,22);
printf("donner votre choix SVP :");
scanf("%d",&choix);
clrscr();
return (choix);
}
int sous_menu1()
{ int choix1;
gotoxy(20,12);
printf("1****Recherche_sequentielle\n");
gotoxy(20,13);
printf("2****Recherche_dichotomique\n");
gotoxy(20,14);
printf("3***MENU_PRINCIPALE*******\n");
gotoxy(38,15);
printf("donner votre choix SVP :");
scanf("%d",&choix1);
return(choix1) ;
}

void sous_menu2()
{
printf("1****Tri_par_selection\n");
gotoxy(20,11);
printf("2****Tri_par_bulles\n");
gotoxy(20,12);
printf("3****Tri_par_insertion\n");
gotoxy(20,13);
printf("4*****MENU_PRINCIPALE*******\n");
gotoxy(35,14);
printf("donner votre choix SVP :");

}
int quitter()
{
gotoxy(18,13);
printf("ce programme est réalise par:\n");
gotoxy(18,14);
printf("\n");
printf("\n");
printf("*************************ALA BEN RAYANA_TD2***********************");
getch();
_exit(0);
return 0;
}
/*PROGRAMME_PRINCIPALE*/
void main()
{
int t1[50],t2[50],t3[50],n,k,rech1,rech2,v,s,choix,choix1,choix2,q;
n=saisie_taille();
printf("chargement du tableau t1:\n");
chargement(t1,n);
affiche(t1,n);
printf("chargement du tableau t2:\n");
chargement(t2,n);
affiche(t2,n);
getch();
clrscr();
do
{
choix=menu_principale();
switch(choix)
{
case 1:recherche(t1,n); getch();break;
case 2:transfere(t1,t3,n);getch(); break;
case 3:s=symetrique(t1,n); break;
case 4:k=determiner(t1,n); break;
case 5:insertion(t1,n); break;
case 6:inverse(t2,n); break;
case 7:rotation(t2,n); break;
case 8:compacter(t1,n); break;
case 9:
do
{
choix1=sous_menu1();
switch(choix1)
{
case 1:rech1=rech_seq(t1,n);getch(); break;
case 2:rech2=rech_dich(t1,n);getch(); break;
case 3:choix=menu_principale();}
}while(choix1!=3);break;
case 10:

do
{
sous_menu2();scanf("%d",&choix2);
switch(choix2)
{
case 1:tri_selection(t2,n);getch(); break;
case 2:tri_bulle(t2,n);getch(); break;
case 3:tri_insertion(t2,n);getch(); break;
case 4:choix=menu_principale();
}
}
while(choix2!=4);

break;
case 11:quitter();getch(); break;
}
}while(choix!=11);
}

6 réponses

chikhaoui5 Messages postés 266 Date d'inscription mardi 17 février 2009 Statut Membre Dernière intervention 21 février 2012 24
17 févr. 2009 à 22:40
kelkun pour m'aider?
urgent svp
0
Si, deux heures plus tard, personne n'a répondu, c'est que le réponse est trop difficile!
Le titre est trompeur, ce n'est ni une 'petite' aide, ni du C++.
Avec plus de 500 lignes de code non indenté, tu décourages le plus courageux des bénévoles.
En plus tu ne dis même pas ce qui ne fonctionne pas! Pas une piste pour traquer l'erreur plus vite!
Désolé et je te souhaite de trouver quand même un débuggeur.
0
Nukynuk Messages postés 465 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 18 novembre 2016 19
18 févr. 2009 à 01:42
Eu...c'est censé faire quoi ton code ???
:D
0
chikhaoui5 Messages postés 266 Date d'inscription mardi 17 février 2009 Statut Membre Dernière intervention 21 février 2012 24
18 févr. 2009 à 08:53
quand je fait la compilation il ya ke 2 fautes que j'arrive pas a les resoudre
et svp c tro facile pour vous pck vous ete plus expert ke moi
0
djkent1 Messages postés 363 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 20 mai 2015 48
18 févr. 2009 à 09:33
Quelles sont elles ces erreurs?!! Comment veux tu qu'on trouve quoique ce soit si on sait pas ce qu'on cherche!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chikhaoui5 Messages postés 266 Date d'inscription mardi 17 février 2009 Statut Membre Dernière intervention 21 février 2012 24
18 févr. 2009 à 18:49
svp une aide
0
Gokuronkyo Messages postés 53 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 2 février 2019 4
18 févr. 2009 à 19:09
J'ai parcouru rapidement, même si tu passe la compilation, ton programme ne fonctionnera pas :

Exemple:

/*FONCTION SAISIE_TAILLE*/
int saisie_taille()
{
int n;
{

Cette fonction doit renvoyer une variable, or tu ne fais que déclarer une variable locale, que tu rappel là où elle n'existe plus.

Sans aller plus loin, je crois que tu devrais reprendre ton algorithme et le suivre pas à pas.

Bon Courage :D
0