Chez moi ça fait des choses - pas ce qu'il faut, mais des choses. Ca me demande le montant, puis le pays, puis ça boucle en renvoyant plein de fois le résultat sans me redemander d'entrer un prix.
Il y a plusieurs erreurs :
Détail : Pour pays=B et pays=D, tu as écrit
TTC+Prix+((5.5/100)*Prix);
au lieu de
TTC = TTC+Prix+((5.5/100)*Prix);
Ta boucle while est mal délimitée : Tu veux pouvoir donner plusieurs valeurs à ton programme. Là, la boucle while commence APRES avoir récupéré des valeurs, du coup une fois que tu les as entrées il ne va plus jamais te demander un autre montant et un autre pays.
Il faut donc que ta boucle while commence avant le bloc
cout<<"Entrez un montant: ";
cin>>Prix;
cout<<"Entre un code (B, D, F): ";
cin>>Pays;
Attention : Du coup, lorsque le programme évaluera la condition (pays != SENTINELLE), la variable prix ne sera pas initialisée. Une solution simple est de l'initialiser à 1, pour que la condition soit vérifiée lors du premier test.
Une solution plus jolie est d'utiliser un booléen "continue", initialisé à true, et après avoir entré le prix tu mets un test :
if (prix==0) {continue = false;}
La condition de ta boucle sera alors : while (continue) { }
Encore un problème de délimitation de ta boucle while : elle doit s'arrêter AVANT le bloc donnant le montant total, etc. C'est juste le } qui est mal placé.
Les conditions pour vérifier le pays sont fausses pour plusieurs raisons.
Déjà, tu utilises le symbole "=" au lieu de "==". Le premier affecte une valeur à la variable, le second effectue un test d'égalité.
Ensuite, 'B', 'D', et 'F' sont des VALEURS que prend ta variable Prix. Ce ne sont pas des variables, ça ne sert à rien de les déclarer. C'est comme si pour tester si un truc est égal à 1, tu faisais déclarais "int 1;" en début de programme. Ca n'a pas de sens.
En fait, c'est la variable "pays" qui doit être de type char, et non de type float comme tu as mis. Tu dois écrire :
char Pays;
Ensuite, tes tests seront : if (Pays == 'B') { }
Sans oublier les ' ' autour de la lettre.
'B' : désigne le caractère correspondant à la lettre B.
B : désigne une variable dont le nom est B.
Enfin, dans tes formules, tu as écrit (9/100) et (6/100). Comme ce sont des entiers, ça va être interprété comme une division euclidienne, et renvoyer 0. La TVA ne sera pas comptée.
Ecris plutot 0.06 et 0.09.
Avec tout ça, ton programme devrait marcher nickel 