我是新来的,试图用c ++编写代码。 我的程序第1天有格式化问题,有人可以帮助我吗? 谢谢!
以下是作业详情。
对于这项任务,编写一个程序,计算一个人在有限(随机)时间段内如果他/她的工资是第一天的随机金额并且每天继续加倍,将计算多少。
因此,如果一个人的起薪是0.04美元,他们将在第一天工作时获得0.04美元,第二天工作时获得0.08美元,第三天工作时获得0.16美元等等。三天,这个人将获得0.28美元。
如果这个例子再持续几天,那么这个人第四天的收入为0.32美元,第五天的收入为1.04美元(薪水为0.64美元,奖金为0.40美元),第六天为1.28美元, 6天的工作总计2.92美元。
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(1);
srand(time(0));
float salary = 0, bonus = 0, totalpay = 0;
int days = 0, salary2;
salary = rand() % 6 + 1;
salary = salary / 100;
days = rand() % 31;
totalpay = salary;
cout << "Starting salary: " << salary << endl
<< "Days worked: " << days << endl
<< "************************************" << endl
<< setw(30) << "Daily Salary" << setw(30) << "Amount Earned" << setw(30) << endl;
for (int d = 0; d < days; d++)
{
cout << "Day " << d + 1 << ":" << '\t'
<< fixed << setprecision(2) << setw(18) << salary << '\t'
<< setw(18)<< (totalpay+bonus) << endl;
salary *= 2;
if ((d+1) % 5 == 0)
bonus = salary * 10;
else
bonus = 0.00;
totalpay += salary;
}
return 0;
enter code here
}
*****这是我的输出****
Starting salary: 0.02
Days worked: 20
************************************
Daily Salary Amount Earned
Day 1: 0.02 0.
02
Day 2: 0.04 0.06
Day 3: 0.08 0.14
Day 4: 0.16 0.30
Day 5: 0.32 0.62
Day 6: 0.64 7.66
Day 7: 1.28 2.54
Day 8: 2.56 5.10
Day 9: 5.12 10.22
Day 10: 10.24 20.46
Day 11: 20.48 245.74
Day 12: 40.96 81.90
Day 13: 81.92 163.82
Day 14: 163.84 327.66
Day 15: 327.68 655.34
Day 16: 655.36 7864.30
Day 17: 1310.72 2621.42
Day 18: 2621.44 5242.86
Day 19: 5242.88 10485.74
Day 20: 10485.76 20971.50
--------------------------------
Process exited after 0.1105 seconds with return value 0
Press any key to continue . . .
答案 0 :(得分:1)
尝试此更改:
- << setw(30) << "Daily Salary" << setw(30) << "Amount Earned" << setw(30) << endl;
+ << setw(30) << "Daily Salary" << setw(30) << "Amount Earned" << endl;
setw(30)
之前的endl
被应用于下一段文本,在您的情况下是第一次迭代中的"Day "
。
答案 1 :(得分:0)
在您的代码中......
<< setw(30) << "Daily Salary" << setw(30) << "Amount Earned" << setw(30) << endl;
for (int d = 0; d < days; d++)
{
cout << "Day " << d + 1 << ":" << '\t'
setw(30)
之前的endl;
适用于"Day "
,而不是endl
。您无法将setw
用于endl
。