Programmation de base en C++ ...

NovaaH -  
 NovaaH -
Bonjour,

Voilà le topo, je débute en programmation ( IUT), et le prof nous a donné à faire un compteur de plateau en C++ :

eeuuujshalfdlll.

Cette "phrase" contient 3 plateaux, par exemple.

Voilà mon code :

#include <iostream>
using namespace std;
int main ()
{
char let1='1',let2='0';
int nbrpla=0;
bool danplat=false;
while(let1!='.')
{
cin>>let1;
if ((let1==let2)&(danplat=false))
{
nbrpla=nbrpla+1;
}
else if (let1==let2)h
{
danplat=true;
}
else if (let1!=let2)
{
danplat=false;
}
let2=let1;
}
cout<<nbrpla;
return 0;
}

seulement, le cout m'affiche toujours 0, je n'arrive pas à comprendre pourquoi ...

3 réponses

  1. NovaaH
     
    Bon, une ou deux recherches m'ont fait comprendre que l'on ne pouvait utiliser les opérateurs == ou = sur les chars ...

    Quelqu'un pourrait m'expliquer comment effectuer des tests de comparaison sur des chars, et comment définir à un char la valeur d'un autre char ?
    0
  2. le père
     
    Bonjour

    Je ne sais pas où tu as pêché tes infos, mais on a parfaitement le droit d'utiliser = et == en C++. D'ailleurs, si ça n'avais pas été possible, le compilateur te l'aurait dit.
    if ((let1==let2)&(danplat=false)) : je te rappelle que la comparaison c'est == et que le et logique c'est &&
    0
  3. NovaaH
     
    Je.
    Suis.
    Un.
    Idiot.

    Merci de ton aide, j'ai refait tout ça sur papier, et j'ai pu trouver.

    #include <iostream>
    using namespace std;
    int main ()
    {
    char let1='1',let2='0';
    int nbrpla=0;
    bool danpla=false;
    while(let1!='.')
    {
    cin>>let1;
    if (let1==let2&&danpla==false)
    {
    nbrpla=nbrpla+1;
    danpla=true;
    }
    else if (let1!=let2)
    {
    danpla=false;
    }
    let2=let1;
    }
    cout<<nbrpla;
    return 0;
    }
    0