#include <iostream>
using namespace std;
int main ( ){
string nome [40];
float salario, porcentagem;
int opcao, faltas;
const float desconto = 0.10;
cout << " MENU: " << endl;
cout << " 1 - SALÁRIO COM AUMENTO " << endl;
cout << " 2 - CONTABILIZAÇÃO DE FALTAS " << endl;
cin >> opcao ;
switch ( opcao ) {
case ( '1' ):
cout << " Informe o nome: " << endl;
cin >> nome;
cout << " Informe o salário atual: " << endl;
cin >> salario;
cout << " Informe a porcentagem de aumento: " << endl;
cin >> porcentagem;
cout << " VALOR DO AUMENTO : " << ( salario * porcentagem ) / 100 << endl;
cout << " SALÁRIO ACRESCIDO: " << ( salario * porcentagem ) / 100 + salario << endl;
case ( '2' ):
cout << " Informe o número de faltas: " << endl;
cin >> faltas;
cout << " SALÁRIO ACRESCIDO COM FALTAS CONTABILIZADAS: " << (( salario * porcentagem ) / 100 + salario ) - ( faltas * desconto ) << endl;
default:
break;
}
return (0);
}
( C++ ) Por que não quer rodar e está dando problemas com a declaração de uma STRING?
2 Respostas
Tem mesmo certeza que não precisa declarar nenhuma importação?
Declare a string como:
string nome;
String em C++ é reamlente uma String, e não um array de chars. Por isso, não precisa do [40]. Claro, por baixo dos panos é um array, mas a gente não precisa saber disso.
Em seguida, modifique os valores dos cases dentro do switch. Você está lendo um inteiro em cin >> opcao, mas está testando o case para chars. Um literal de char, como '1', ou 'a', é um inteiro, e vale um número da tabela ASCII. Como você está lendo um int, a linguagem está convertendo de char para int sozinha. Portanto, o switch fica:
switch (opcao) {
case 1:
...
break; // Não esqueça do break no final, senão os casos abaixo desse também serão executados, uma situação conhecida como "fallthrough"
case 2:
...
break;
default:
break;
}
1 é diferente de ‘1’. Quer fazer o teste?
int um = '1';
cout << um << endl;
Criado 8 de março de 2017
Ultima resposta 8 de mar. de 2017
Respostas 2
Participantes 3
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo Inteligencia Artificial e ChatGPT: Da revolucao dos... Por Fabricio Carraro — Casa do Codigo