• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

211
Views
Luchando para que mi declaración de cambio funcione

Estoy tratando de crear un programa C++ para devolver un número (deletreado) cuando el usuario ingresa un valor entero entre 0 y 9, ¿alguien puede averiguar dónde me equivoqué? ¡Gracias por adelantado!

 #include <iostream> using namespace std; int main(){ int numinput; string numberWritten; cout << "Enter a whole number between 0 and 9" << endl; cin >> numinput; switch (numinput) { case 0: numberWritten = "Zero"; break; case 1: numberWritten = "One"; break; case 2: numberWritten = "Two"; break; case 3: numberWritten = "Three"; break; case 4: numberWritten = "Four"; break; case 5: numberWritten = "Five"; break; case 6: numberWritten = "Six"; break; case 7: numberWritten = "Seven"; break; case 8: numberWritten = "Eight"; break; case 9: numberWritten = "Nine"; break; default: "Not a number I know"; return numberWritten; } }
over 3 years ago · Santiago Trujillo
3 answers
Answer question

0

Reemplace el switch con una matriz:

 static const char * numbers_text[] = { "Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", }; //... cout << "Enter a whole number between 0 and 9" << endl; cin >> numinput; if ((num_input >= 0) && (num_input <= 9)) { cout << numbers_text[numinput] << "\n"; } else { cout << "Unsupported number.\n"; }

El método de matriz o búsqueda evita cualquier problema con una declaración de switch .

Menos líneas de código, menos posibilidades de inyectar errores.

over 3 years ago · Santiago Trujillo Report

0

No puede devolver int si int main() devuelve una cadena o simplemente lo dice el compilador:

no suitable conversion function from "std::string" to "int" exists

así es como lo arreglas:

 #include <iostream> #include <string> using namespace std; int main() { int numinput; string numberWritten; cout << "Enter a whole number between 0 and 9" << endl; cin >> numinput; switch (numinput) { case 0: numberWritten = "Zero"; break; case 1: numberWritten = "One"; break; case 2: numberWritten = "Two"; break; case 3: numberWritten = "Three"; break; case 4: numberWritten = "Four"; break; case 5: numberWritten = "Five"; break; case 6: numberWritten = "Six"; break; case 7: numberWritten = "Seven"; break; case 8: numberWritten = "Eight"; break; case 9: numberWritten = "Nine"; break; default: numberWritten = "Not a number I know"; break; } if(numinput >= 0 && numinput <= 9) { cout << "The number you entered is " << numberWritten << endl; } else { cout << numberWritten << endl; } cout << "The number you entered is " << numberWritten << endl; return 0; }

Pido disculpas, olvidé probar el valor predeterminado, ahora funciona perfectamente.

over 3 years ago · Santiago Trujillo Report

0

El interruptor nunca llegará a la

 return number

Como todavía está dentro de las llaves. En el interruptor, se detendrá en el valor predeterminado .

Su función es int main y está tratando de devolver una cadena con numberWritten.

De esta manera funciona

 #include <iostream> using namespace std; int main() { int numinput; string numberWritten; cout << "Enter a whole number between 0 and 9" << endl; cin >> numinput; switch (numinput) { case 0: numberWritten = "Zero"; break; case 1: numberWritten = "One"; break; case 2: numberWritten = "Two"; break; case 3: numberWritten = "Three"; break; case 4: numberWritten = "Four"; break; case 5: numberWritten = "Five"; break; case 6: numberWritten = "Six"; break; case 7: numberWritten = "Seven"; break; case 8: numberWritten = "Eight"; break; case 9: numberWritten = "Nine"; break; default: "Not a number I know"; } cout << numberWritten << endl; return 0; }
over 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error