练习受挫,萌新求助


具体就是下面这段,返回值始终是0,请各位大佬帮忙看看是哪里有问题,万分感谢!!
const int CM2M = 100;
int main()
{
    using namespace std;
    int CM;
    float M = CM / CM2M + (CM % CM2M) * 0.01f;

    cout << "Enter the height in CM: ";
    cin >> CM;
    cout << "Your in M is " << M << endl;
    return 0;
}

7 个解决方案

#1


const int CM2M = 100;
using namespace std;
int main()
{
    int CM;
    cout << "Enter the height in CM: ";
    cin >> CM;
    float M = 1.0f*CM / CM2M + (CM % CM2M) * 0.01f;
    cout << "Your in M is " << M << endl;
    return 0;
}

#2


float M = CM *1.0 / CM2M + (CM % CM2M) * 0.01f;

CM/CM2M,由于这两个变量都是整型,因此CM/CM2M是按照整型数除法计算的,因此结果也是一个整数。CM *1.0/CM2M是将整数除法强制变成浮点数除法。

#3


顺序错了,你还没输入M值就进行了计算:

const int CM2M = 100;
int main()
{
using namespace std;
int CM;


cout << "Enter the height in CM: ";
cin >> CM;

float M = CM / CM2M + (CM % CM2M) * 0.01f;

cout << "Your in M is " << M << endl;
return 0;
}

#4


输出值?返回值肯定是0.类型转换再算

#5


类型转换有问题

#6


对CM没有初始化。

#7


感谢各位回答,改成这样似乎更合理一些。

const int CM2M = 100;
int main()
{
    using namespace std;
    int CM = 0;
    float M = 0;
    cout << "Enter the height in CM: ";
    cin >> CM;
    M = CM / CM2M + (CM % CM2M) * 0.01f;
    cout << "Your in M is " << M << endl;
    return 0;
}

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号