我希望你能帮助我。 问题是我不知道如何更改变量的值,例如,我有一个 “char”变量,然后我想将其更改为“int”或“float” 这是代码
#include<iostream>
#include<cstdlib>
using namespace std;
main()
{
{
cout<<" El valor de las calificaciones es A=10,B=9,C=8,D=7,E=6,F=5,G=4,H=3,I=2,J=1 " <<endl;}
char calificaciones[4];
int resultado,A=10,B=9,C=8,D=7,E=6,F=5,G=4,H=3,I=2,J=1, i, promedio;
for(i=1;i<4;i++)
{
cout<<"Ingrese calificacion con letra "<<i;
cin>>calificaciones[i];
}
promedio=(calificaciones[1]+calificaciones[2]+calificaciones[3])/3;
cout<<"El promedio de sus tres calificaciones es "<<promedio<<endl;
system("pause");
}
该程序应该要求用户输入三个分数,如您所见,分数以字母显示,A=10、B=9 等,一旦用户输入三个字母,程序就会将它们分成三份,但由于变量“calificaciones”首先是一个字符串,我该如何进行我想做的操作,或者我可以使用什么命令让程序理解用户输入了三个字母和一个将对它们进行操作? 希望你能帮助我,谢谢。
最佳答案
如果您原来的问题是如何更改数据类型
,抱歉,这是不可能的。
不过,您想要实现的目标可以通过 std::map
创建成绩 map 。
std::map<char,int> myGrades;
myGrades.insert ( std::pair<char,int>('A',10) );
myGrades.insert ( std::pair<char,int>('B',9) );
myGrades.insert ( std::pair<char,int>('C',8) );
myGrades.insert ( std::pair<char,int>('D',7) );
读取输入:(这个是一样的。唯一的变化是索引从0开始)
for(i=0;i<3;i++)
{
cout<<"Ingrese calificacion con letra "<<i;
cin>>calificaciones[i];
}
从 map 中获取实际整数。
int total_grades = ( myGrades.find(calificaciones[0])->second +
myGrades.find(calificaciones[1])->second +
myGrades.find(calificaciones[2])->second);
promedio=total_grades /3.0; //<-- NOtice 3.0 to avoid int/int
关于c++ - 在 C++ 中更改变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22030695/