C’est un exercice dans le cadre d’apprentissage du c++

voici le problème à résoudre, j'ai trouver la solution , ne vous inquiétez pas ^^ mais je vais vous expliquer ce qui ne vas pas après




et voici le code que j'ai écrit,

- 1 )je voulais savoir si vous pouvez m'aider à simplifier ce code,

- 2 ) trouver un moyen de mettre un return dans la fonction main () et supprimer la premier return.

- 3 ) une fois compiler j'ai l'impression que le pc lag bizar,,,
Merci d'avance


j'ai peut être un peut compliquer la chose mais voila , on peut pas tout savoir !


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
53
54
55
56
 
#include <iostream>
using namespace std;
 
int binaire(int valeur)
{
    int reste,nombre_un=0,nombre_zero=0,resulta_soustaction;
 
 
    if (valeur==0)
        resulta_soustaction=0;
    else
    {
        while (valeur>0)
        {
            reste=valeur%2;
            valeur/=2;
            if (reste==1)
                nombre_un++;
            else
                nombre_zero++;
        }
        resulta_soustaction=nombre_un-nombre_zero;
        if (resulta_soustaction==0)
            resulta_soustaction=3;
        else if (resulta_soustaction<0)
            resulta_soustaction=0;
        else if (resulta_soustaction>0)
            resulta_soustaction=1;
    }
    return resulta_soustaction;
}
int main()
{
    int entree,r,un=0,zero=0,signe=0,save,suite_de_nombre=0,q,b=0;
    cout<<"Nombre d'elements de la suite?";
    cin>>entree;
 
    for (int i=0; b<entree ;i++)
    {
        if (signe!=3)
            save=signe;
        signe= binaire (i);
 
        if (save==signe || save==3 || signe==3)
            suite_de_nombre++;
        else
        {
            cout<<suite_de_nombre<<" ";
            b++;
            suite_de_nombre=1;
        }
    }
    cout<<endl;
 
}