Para lidar com strings, precisamos usar o operador "*".
Este operador indica ao compilador que desejamos que ele obtenha o valor da variável e use este valor no comando.
Veja o código fonte abaixo; os comandos referentes ao uso de string estão destacados.
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
int main()
{
const float LIMITE = 500;
const float PERCENTUALABAIXO = 2.5 / 100;
const float PERCENTUALACIMA = 4.0 / 100;
char CodigoVendedor[15] = "";
char Fim[15] = "FIM";
float SalarioBasico = 0, ValorVendas = 0, PercentualComissao = 0, ValorComissao = 0, SalarioMaisComissao = 0;
do
{
puts("Digite o Codigo do Vendedor ('FIM' para terminar): ");
scanf("%s",&CodigoVendedor);
if (*CodigoVendedor != *Fim)
{
puts("Digite o Salario Basico: ");
scanf("%f",&SalarioBasico);
puts("Digite o Valor das Vendas: ");
scanf("%f", &ValorVendas);
if (ValorVendas > LIMITE) PercentualComissao = PERCENTUALACIMA; else PercentualComissao = PERCENTUALABAIXO;
ValorComissao = ValorVendas * PercentualComissao;
SalarioMaisComissao = SalarioBasico + ValorComissao;
printf("---------- Resultados ----------\n Codigo do Vendedor: %s\n Vendas No Mes: %.2f\n Salario mais Comissao: %.2f\n\n", CodigoVendedor, ValorVendas, SalarioMaisComissao);
}
} while (*CodigoVendedor != *Fim);
system("PAUSE");
return EXIT_SUCCESS;
}
Veja que definimos uma variável para conter o código digitado pelo operador e outra para servir de comparação com o valor "FIM".
Nos comandos de teste, não testamos "CodigoVendedor = "FIM" - este teste nunca resultará verdadeiro!
É preciso usar "*CodigoVendedor = *Fim".
Desta forma, está implementada a solução exatamente como requerido pelo Professor!
Para testar, copie e cole este código no seu compilador, ou faça download do anexo.