Lo primero antes de nada. Si Bola únicamente almacena enteros debería ser int en vez de float. Si no quieres errores raros en tu código acostúmbrate a usar el tipo correcto para cada variable.
Y otro detalle más, std::cout no necesita paréntesis para sacar el contenido por la pantalla.
Lo que pretendes puedes hacerlo de varias formas, pero básicamente todas pasan por comparar números o cadenas.
Para hacer la versión sencilla, es decir, comparando palabras, tienes que tener en cuenta que no es posible comparar dos char* usando el operador de comparación ==, sino que has una función del tipo strcmp. Una opción más sencilla es usar la clase std::string:
Código C++:
Ver originalstd::string bola;
cout<<("\nCual es el color de la bolita: ");
cin>> bola;
if(Bola==" negro") {
cout<<("\nNo posee descuento") << endl;
}
else if (Bola=="rojo") {
cout<<("\nPosee un descuento de 10%") << endl;
}
Por cierto, nota que el código es sensible al uso de mayúsculas.
Otra opción pasa por comparar códigos. En este caso recuperamos un string y calculamos el código que tiene asociado. En este caso, por claridad, se puede usar la clase std::map para guardar la relación entre un color y su código:
Código C++:
Ver originalstd::map<std::string,int> mapa;
mapa["negro"]=1;
mapa["rojo"]=2;
std::string bola;
cout<<("\nCual es el color de la bolita: ");
cin>> bola;
int codigo=mapa[bola];
if(codigo==1) {
cout<<("\nNo posee descuento") << endl;
}
else if (codigo==2) {
cout<<("\nPosee un descuento de 10%") << endl;
}
Aunque quizás, ya puestos, lo suyo sería que el mapa almacenase directamente el descuento, lo que nos permitiría ahorrarnos código repetido:
Código C++:
Ver originalstd::map<std::string,int> mapa;
mapa["negro"]=0;
mapa["rojo"]=10;
// ...
cout<<("\nCual es el color de la bolita: ");
std::string bola;
cin>> bola;
int descuento=mapa[bola];
if(descuento==0)
cout< ("\nNo posee descuento" << endl;
else if (descuento==100)
cout<< "\nLa compra es gratis" << endl;
else
{
cout<<"\nPosee un descuento de " << descuento << "%" << endl;
float PrecioDes=(CantidadAP-((CantidadAP*descuento)/100));
cout <<"\nTotal a pagar es: " << PrecioDes << endl;
}
Hay más formas de hacerlo pero las expuestas bastan para darte una idea sobre cómo resolver el problema.
Por cierto, copiar y pegar el código no te va a servir de mucho a la hora del examen. Es recomendable que entiendas lo que estás poniendo aunque la solución propuesta no sea la mejor de todas.
Un saludo.