2013-01-04 25 views
-1

该代码按预期工作,给出了这10个输入字段中的数字。现在,我希望他们全部加在一起。 (所有的miTimesFrac结果。)任何真正有效的方法呢?将矢量数组函数相加

double fraction[10] = {methane, ethane, propane, nbutane, ibutane,npentane,ipentane,nhexane,nitrogen,oxygen}; 
double Mi[10] = {16.0426,30.064,44.0962,558.123,558.123,72.1498,72.1498,86.1766,28.0134,31.9988}; 
double miTimesFrac[10]; 
for (int i=0; i<10; ++i) miTimesFrac[i] = Mi[i] * fraction[i]; 

我已经尝试了一些东西,像这样

double TMiTimesFrac; 
for (int i=1; i<10; ++i) TMiTimesFrac = miTimesFrac[i]+miTimesFrac[i-1]; 

这将返回相同的值每一次寿。我失踪的任何功能?

+0

你必须学习的基本编程习语之一,如i = i + 1。 Sum = .... –

+0

我尝试了很多类似的东西。无法找到一种方法来使其工作。例? –

+0

你想计算miTimesFrac中所有元素的总和吗? –

回答

0

此:

double TMiTimesFrac; 
for (int i=1; i<10; ++i) 
    TMiTimesFrac = miTimesFrac[i]+miTimesFrac[i-1]; 

没有做这个工作,因为你没有保持跟踪TMiTimesFrac的所有先前值的,因此,只有最后一个值(miTimesFrac [9] + miTimesFrac [8 ])有助于TMiTimesFrac的最终值。

因此首先将TMiTimesFrac初始化为零。然后添加每个值:

double TMiTimesFrac= 0.0; 
for(unsigned int i=0; i<10; i++) 
{ 
    TMiTimesFrac+=miTimesFrac[i]; 
} 

现在你应该可以在不粘贴代码的情况下做到这一点。我建议尝试一下。