2016-09-16 48 views
-1

我在这里是新的,并试图用C++编写代码。 我的程序第1天有一个格式问题,任何人都可以帮我吗? 谢谢!格式问题与c + +有人可以帮助我吗?

以下是分配细节。

对于这项任务,编写一个程序,该程序将计算一个人在有限(随机)时间段内挣多少钱,如果他/她的薪水在第一天是随机数并且每天继续增加一倍。

因此,如果一个人的起薪为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

如果您有输出问题,您需要显示预期输出和输出。 – NathanOliver

+0

谢谢,我修复了我的帖子。 –

回答

1

试试这个变化:

-   << setw(30) << "Daily Salary" << setw(30) << "Amount Earned" << setw(30) << endl; 
+   << setw(30) << "Daily Salary" << setw(30) << "Amount Earned" << endl; 

endl前的最后setw(30)被应用于下一个一段文字,在你的情况下,在第一次迭代"Day "

+0

谢谢!你修好了! –

+0

@BradleyTourt把Jose当作骨头,并将其标记为答案。何塞,我建议填补一点,所以它不会被删除只是一个代码的答案。添加你做了什么,为什么,以及为什么它的作品。 – user4581301

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 ",而不是endlendl不能使用setw

相关问题