注册 登录
编程论坛 C++教室

一个错得很有意思的程序,已解决,但不知道原理

hao341202 发布于 2014-12-30 10:10, 494 次点击
程序代码:

//功能:华氏度转摄氏度
#include<iostream>
using namespace std;
int main()
{
    double c, f;
    cin >> f;
    c =5/9*(f - 32);//改成数字或改成分式放在后面即可正常执行,否则始终输出0
    cout << c;
    system("pause");
    return 0;
}
5 回复
#2
zklhp2014-12-30 10:13
不明白什么意思 你可以分别贴出来错误和正确的我们看看
#3
wp2319572014-12-30 11:15
这样改就好了

 c =5.0/9.0 * (f - 32);//改成数字或改成分式放在后面即可正常执行,否则始终输出0
#4
hao3412022014-12-30 12:29
回复 2楼 zklhp
错误:
程序代码:
#include<iostream>
using namespace std;
int main()
{
    double c, f;
    cin >> f;
    c =5/9*(f - 32);
    cout << c;
    system("pause");
    return 0;
}

正确:
程序代码:
#include<iostream>
using namespace std;
int main()
{
    double c, f;
    cin >> f;
    c =(f - 32)*5/9;
    cout << c;
    system("pause");
    return 0;
}
#5
hao3412022014-12-30 12:33
回复 3楼 wp231957
通过了,谢谢!
#6
zklhp2014-12-30 18:23
以下是引用hao341202在2014-12-30 12:29:04的发言:

错误:
#include
using namespace std;
int main()
{
    double c, f;
    cin >> f;
    c =5/9*(f - 32);
    cout << c;
    system("pause");
    return 0;
}
正确:
#include
using namespace std;
int main()
{
    double c, f;
    cin >> f;
    c =(f - 32)*5/9;
    cout << c;
    system("pause");
    return 0;
}

C/C++是有类型的 5和9都是整型 整型相除 还是整型 所以第一个错误的写法里相当于0*(f-32) 结果自然是0

第二个 先减 浮点减整型 结果是浮点 浮点乘和除 都是浮点 所以能正确输出

你不放代码 我也没搞明白什么意思 你一帖 我就知道了 放代码很重要哦

祝你学习愉快
1