Buenas.
Bueno, primero que todo una pregunta( se que es malo responder con preguntas) Para que importas la librería string si no la utilizas?.
El problema esta en lo siguiente y es que tratas a una cadena (vector de caracteres) como si fuese un tipo de dato primitivo.
Te pongo un ejemplo cuando tienes un vector de enteros que contenga los siguientes números:
1 2 3 4 5
tu dices if(12345==vector)
no lo haces cierto, lo que haces es diferenciar posición para verificar si esto es cierto.
No recuerdo si scanf sirve para leer cadenas, sinceramente no lo recuerdo pero creo que si, sin embargo para el tratado de cadenas C/C++ los lenguajes nos proporcionan la librería string(aunque sea de C) por eso es que te hice la pregunta al principio.
Bueno para tu caso necesitaríamos las funciones las funciones strcmp y gets, aquí una breve explicación de lo que hacen.
strcmp(cadena1,cadena2): compara dos cadenas retornando 0 si son iguales, 1 si cadena1 mayor que cadena2(con respecto a código ASCII) y -1 en caso contrario a la anterior mencionada.
Ejemplo strcpm("sol", "sol"); retornaría 0 debido a que sol es igual a sol.
Basta con solo escribir el nombre del vector, debido a que un vector es un puntero que apunta a la primera posición de unos elementos guardados secuencial-mente (no se si sepas que es un puntero)
gets(cadena): esta su nombre lo dice get(obtener en ingles) y la s seria string (cadena). Nos sirve para la lectura de cadenas, y para poder saber donde finaliza nuestra cadena a la ultima posición se le asigna el valor de '\0' (carácter nulo) . Tienes que tener en cuenta que si la mayor palabra tiene 8 letras, preferiblemente has el vector de 9 posiciones para prevenir futuros errores(casi todas las funciones de String usan '\0' para saber guiarse en la cadena).
Y por ultimo después de utilizar cin>> o scanf() utiliza fflush(stdio);
para limpiar el buffer del teclado.
Listo es todo.
este es tu programa modificado:
#include
#include
#include
main()
{
float compra,total,descuento;
char bola[6];
printf("Ingrese el importe de su compra: ");
scanf("%f",&compra);
printf("Ingrese el color de la bola que le salio: ");
fflush(stdin);
gets(bola);
if (strcmp(bola,"roja")==0){
descuento=compra*.20;
total=compra-descuento;
printf("Total a pagar, incluendo descuento es: %f",total);
}
else
if (strcmp(bola,"azul")==0){
descuento=compra*.30;
total=compra-descuento;
printf("Total a pagar, incluendo descuento es: %f",total);
}
else
if (strcmp(bola,"blanca")==0){
descuento=compra*.0;
total=compra-descuento;
printf("Total a pagar, incluendo descuento es: %f",total);
}
getch();
return 0;
}