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

0

226
Views
¿Cómo usar el carácter en la matriz en la declaración de cambio?

cuando compilo el programa, dice que 'd' no es un int, así que si alguien tiene idea de cómo cambiarlo a un int o hacer que funcione.

 #include <iostream> using namespace std; int main() { int k; cin >> k; if(k==2) { cout << "we have 3 main sub companies and other 2 companies that are growing\n"; cout << "the 3 main sub companies are\n"; cout << " a-Aegre Food and Drinks\n"; cout << " b-Future Tech\n"; cout << " c-Hope Energy\n"; char d[]={'a','b','c'}; int d[0]=1,d[1]=2,d[2]=3; cout << "In which one of our companies do you want to invest plase enter the letters befor them "; cin >>d; switch(d)//here it says d is n't an int// { case a:cout <<"we have 5 bonds"; case b:cout <<"we have 3 bonds"; case c:cout <<"we have 2 bonds"; } } }
over 3 years ago · Santiago Trujillo
3 answers
Answer question

0

Sería más fácil resolver este problema sin una matriz:

 #include <iostream> using namespace std; int main() { int k; cin >> k; if(k==2) { cout << "We have 3 main sub-companies and other 2 companies that are growing.\n"; cout << "The 3 main sub-companies are\n"; cout << " a-Aegre Food and Drinks\n"; cout << " b-Future Tech\n"; cout << " c-Hope Energy\n"; char d; cout << "In which one of our companies do you want to invest? Please enter the letters before them: "; cin >> d; switch(d) { case 'a': cout << "We have 5 bonds"; break; case 'b': cout << "We have 3 bonds"; break; case 'c': cout << "We have 2 bonds"; break; default: cout << "Invalid input!\n"; } } }

Un char es un tipo entero, que se puede usar en una declaración de switch .

Tenga en cuenta que estoy usando caracteres literales en las etiquetas de case y minúsculas de la declaración de switch . Además, si no desea pasar al siguiente caso, debe usar break después de cada caso en la declaración de switch .

over 3 years ago · Santiago Trujillo Report

0

¿Parece estar tratando de hacer que d sea una matriz de caracteres, una matriz de números enteros y un solo valor, todo al mismo tiempo? Creo que lo que realmente quieres hacer es leer un solo carácter y compararlo en un interruptor. No necesitas una matriz en absoluto:

 #include <iostream> using namespace std; int main() { int k; cin >> k; if(k==2) { cout << "we have 3 main sub companies and other 2 companies that are growing\n"; cout << "the 3 main sub companies are\n"; cout << " a-Aegre Food and Drinks\n"; cout << " b-Future Tech\n"; cout << " c-Hope Energy\n"; char company; cout << "In which one of our companies do you want to invest plase enter the letters befor them "; cin >>company; switch(company) { case 'a':cout <<"we have 5 bonds"; break; case 'b':cout <<"we have 3 bonds"; break; case 'c':cout <<"we have 2 bonds"; break; } } }

Tenga en cuenta que necesita un break entre sus casos; a se activarán los tres casos.

Si lo que intentaba hacer era asignar una carta de empresa a un número, entonces lo que necesita es un std::map :

 #include <iostream> #include <map> using namespace std; int main() { int k; cin >> k; if(k==2) { cout << "we have 3 main sub companies and other 2 companies that are growing\n"; cout << "the 3 main sub companies are\n"; cout << " a-Aegre Food and Drinks\n"; cout << " b-Future Tech\n"; cout << " c-Hope Energy\n"; std::map<char, int> companies = {{'a', 1}, {'b', 2}, {'c', 3}}; char company; cout << "In which one of our companies do you want to invest plase enter the letters befor them "; cin >>company; auto companyNumber = companies.find(company); if (companyNumber == companies.end()) { cout << "invalid company\n"; return 1; } switch(companyNumber->second) { case 1:cout <<"we have 5 bonds"; break; case 2:cout <<"we have 3 bonds"; break; case 3:cout <<"we have 2 bonds"; break; } } }
over 3 years ago · Santiago Trujillo Report

0

d es una matriz de caracteres, puede cambiar elementos como este, d[0] = '1', d[1] = '2', d[2] = '3';

Pero no puedes hacerlo así, int d[0]=1,d[1]=2,d[2]=3;

porque d ya está declarado como una matriz de caracteres. No puedes declararlo en otra variable.

Algunos ejemplos:

 char d[]={'a','b','c'}; // char array d[0]='1',d[1]='2',d[2]='3'; // update char array cin >>d[0]; // you can also take input like this (cin >> d[0]) or (cin >> d[1]) or (cin >> d[2]). switch(d[0]) // pass input { case 'a':cout <<"we have 5 bonds"; case 'b':cout <<"we have 3 bonds"; case 'c':cout <<"we have 2 bonds"; }
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