2011-07-24 101 views
0

我对我的C++作业有问题。C++字符串和数组

编写一个程序来分析过去10天的汽油价格。首先,要求用户输入价格。然后执行以下操作: (a)计算并显示前5天的平均价格和第5天的平均价格 (b)比较两个平均价格。确定并报告哪一个更高(或者它们是相同的)。 (c)将每天的价格(第一天除外)与前一天的价格进行比较。确定它是否变得更高,更低或保持不变。计数并报告价格高于,低于和等于前一天价格的天数。

我不知道如何比较如何前五天与过去五天进行比较,C部分我完全靠....

失去我不会找人为我做我的作业,但是朝着正确的方向努力将是一个很大的帮助!

这里是我到目前为止做出:

#include <iostream> 
#include <fstream> 
using namespace std; 


int main() 
{ 
double gasPrice[10]; 
double firstFive = 0.0; 
double lastFive = 0.0; 
double ffAvg = 0.0; 
double lfAvg = 0.0; 

for (int x = 0; x < 10; x = x + 1) 
{ 
    gasPrice[x] = 0.0; 
} 

cout << "You will be asked to enter daily gas prices for 10 days."<< endl; 

ofstream gasprice; 
gasprice.open("gasprice.txt", ios::app); 

if (gasprice.is_open()) 
{ 
for (int x = 0; x < 10; x = x + 1) 
{ 
    cout << "Enter the gas price " << x+1 << ": "; 
    getline(cin, gasPrice[x]; 
} 




if (ffAvg > lfAvg) 
{ 
    cout << "The first five days have a lower gas price " << ffAvg << lfAvg << endl; 
    } 

else if (ffAvg < lfAvg) 
{ 
     cout << "The last five days have a lower gas price " << ffAvg << lfAvg << endl; 
    } 

system("pause "); 
return 0; 
} 
+1

家庭作业需要被标记为SO上的家庭作业。我为你重新标记了它。 – Paulpro

+1

@PaulPRO:不,它确实没有,它确实不应该。与家庭作业有关的一个好问题应该与一个与作业无关的好问题区分开来。 –

+4

@James McNellis,重要的是人们知道他们在帮助家庭作业问题,所以他们可以帮助而不是仅仅给出最终答案。 – Paulpro

回答

0

我sugest做如下:

double average1=0.0; 
for(int i=0;i<5;++i) { 
    average1 += values[i]; 
} 
average1/=5.0; 

double average2=0.0; 
for(int i=5;i<10;++i) { 
    average2 += values[i]; 
} 
average2/=5.0; 

此外,看一看的std ::载体,它可以帮助你进一步练习: http://www.cplusplus.com/reference/stl/vector/

1

阅读要求就像他们是一个描述,而不是一个计算机公式。当第一次学习时,它会变得压倒性的,我们会被在另一个环境中自然产生的东西所淹没。

无论如何,你不是要比较个别的日子,而是平均的日子。所以你首先需要计算前五天的平均值和后五天的平均值,然后再比较。

对于问题的第二部分,您总计的聚合器是我会给你的。

希望这会有所帮助。

0

您应该首先计算第一天和最后5天的平均值。平均值由总和除以项目数量来定义。所以你的平均值将是(gasPrice[0] + gasPrice[1] + gasPrice[2] + gasPrice[3] + gasPrice[4])/5.0

你可能应该在一个类似于你获得输入的循环中进行这个计算。该循环只能迭代5次。

1

分解到一系列阶段的问题:首先,你需要从用户那里得到10个输入价格,并将其存储在大小10

下一个数组,你需要计算的平均价格为前五天(即在你的数组的索引值0-4),并将其存储在ffAvg,你可以做到这一点使用下面的简单for循环:

double sum; 
for(int i = 0; i < 5; i++) 
{ 
     sum += gasPrice[i]; 
} 
double ffAvg = sum/5; 

然后你可以在做这个第2个5天,将平均值存储在lfAvg中。

你的任务的下一个部分是比较平均,则可以使用ifelse if语句,例如这样做,如果你想比较的数字,num1num2你不妨做到以下几点:

if(num1 > num2) 
{ /* Do something */ } 

这将比较num1num2,如果num1大于num2它将执行大括号中的代码。

要做最后的比较,你可以简单地结合我们每天所做的事情。尝试尝试各种不同的方法,因为这可以帮助您了解更多信息。

希望这可以帮助你! :)

编辑:我也注意到,你还没有关闭很多你的护腕,你必须这样做,所以编译器可以正常工作。每{必须有相应的},否则编译器应该抛出错误,而不是编译。