我刚开始学习C ++。这是我的代码:
#include <iostream>
using namespace std;
int main() {
double hours,rate,pay;
// get the number of hours worked
cout << "How many hours did you work?";
cin>> hours;
//Get the hourly pay rate
cout<<"How much did you get paid per hour?";
cin>> pay;
// calculates the pay
pay = hours * rate;
// Display the pay
cout<<"You have earned $" << pay <<endl;
return 0;
}
我不知道为什么这个程序输出错误的数字:
你工作了几个小时?19
你每小时收到多少钱?15
您已获得$ 4.03179e-313
也许我安装了IDE错误(我正在使用Eclipse)?:
答案 0 :(得分:3)
我认为您的onActivityResultMethod()
行是错误的,因为您使用cin >> pay
进行了跟进。由于从未分配速率,它只会在内存中获取垃圾数据,因此输出未定义。将pay = hours * rate
更改为cin >> pay
答案 1 :(得分:2)
您的代码存在两个问题。
您的第二次cin>>
来电正在初始化pay
时应该初始化rate
:
cin >> rate;
或者,如果您使用的是C ++ 11或更高版本,则可以改为使用std::get_money()
:
cin >> get_money(rate);
您的cout<<
正在使用其默认格式输出double
(浮点数据类型),这可能不适合您的需要。要显示货币值,您应该明确说明格式,例如:
cout << "You have earned $" << fixed << setprecision(2) << pay << endl;
或者,如果您使用的是C ++ 11或更高版本,则可以改为使用std::put_money()
:
cout << "You have earned " << put_money(pay) << endl;
答案 2 :(得分:1)
首先,在使用它们之前初始化变量是一个很好的做法,所以你应该试试这个:
double hours = 0, rate = 0, pay = 0;
其次,您需要在以下方式中按费率替换付款:
//Get the hourly pay rate
cout << "How much did you get paid per hour?";
cin >> rate;
Amran AbdelKader。