Bonjour à tous ,j'ai un exo a faire (je l'ai fait) mais il ne marche pas et je ne comprend pas du tout pourquoi.
Voici l'exo :

Ecrire un programme qui demande à l'utilisateur de saisir 10 entiers stockés dans un tableau ainsi qu'un entier V. Le programme doit rechercher si V se trouve dans le tableau et doit supprimer la première occurence de V en décalant d'une case vers la gauche les éléments suivants et en rajoutant un 0 à la fin du tableau. Le programme doit ensuite afficher le tableau final.

Sans les appels de fonction,j'y arrive mais je prefere m'entrainer aux appels .
Voici mon code source :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
 
#include<iostream>
#include<cstdlib>
using namespace std;
const int n=10;
 
int saisir(int tab[],int n,bool present)
{
    cout<<"Entrer 10 valeurs"<<endl;
    for(int i=0;i<n;i++)
    cin>>tab[i];
    int v;
    cout<<"Entrer un entier V"<<endl;
    cin>>v;
    present=false;
    int j=0;
    while(!present && j<n)
    {
                   if(tab[j]==v)
                   present=true;
                   else j++;
}
return present;
}
 
int decgauche(int tab[],int n,int i)
{
    for(int j=i;j=n-1;j++)
    tab[j]=tab[j+1];
    cout<<"Hello"<<endl;
    tab[n-1]=0;
    cout<<"tg"<<endl;
}
 
int affichetableau(int tab[],int n)
{
    for(int i=0;i<n;i++)
    cout<<tab[i]<<endl;
}
 
int main()
{
    bool h,present;
    int tab[n];
 
    h=saisir(tab,n,present);
    if(present)
    decgauche(tab,n,h);
    affichetableau(tab,n);
 
}
Qu'est ce qui ne vas pas svp ?
Merci beaucoup.