c++ - 在 C++ 中更改变量的值?

标签 c++ variables for-loop

我希望你能帮助我。 问题是我不知道如何更改变量的值,例如,我有一个 “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/

相关文章:

windows - 如何将 Windows 批处理 for 循环的最终结果通过管道传输到另一个命令中

c++ - 用两条语句并行化 while 循环(Floyd 循环检测算法)

cocoa - 如何在 Cocoa 中进行静态初始化

c++ - 适用的QImage格式

bash - 使用 awk 从 txt 保存变量

javascript - 设置变量 if...then javascript

c++ - 组合的基于范围的 for 循环

javascript 循环中的闭包

c++ - 如何在 Windows 上编译 encfs4win

c++ - 矩阵相乘时的段错误