2013-10-02 53 views
0

給定類型Money,這是一個結構類型,有兩個int字段,美元和美分。假設名爲monthlySales的數組有12個元素,每個類型Money已被聲明和初始化。瞭解這個C++模塊?

假設Money-變量yearlySales也已被聲明。編寫遍歷數組monthlySales的必要代碼,並將其全部添加並將結果總數存儲在yearlySales中。一定要確保yearlySales結束與一個有效的價值,即小於100美分的價值。

現在我不是要求的答案,但是,我問我如何處理它。只是因爲我不知道如何解決如何編碼的問題。我已分別理解問題的第一段。這是我的代碼片段。現在我只是堅持如何計算它。我只需要一點指導。謝謝! 我到目前爲止的代碼,訪問我有12個元素的數組,並將它們分別指定爲美元和美分的隨機數。

#include <iostream> 
#include <iomanip> 
#include <cstdlib> 
#include <cmath> 

using namespace std; 

    struct Money 
    { 
     int dollars,cents; 
    }; 


    int main() 
    { 
     Money monthlySales[12], yearlySales; 
     for (int i = 0; i < 12; i++) 
     { 
      monthlySales[i].cents =rand()%99; 
      monthlySales[i].dollars =rand(); 
     } 

     return 0; 
    } 
+1

使用''標題而不是'rand'。 – chris

+1

你爲什麼在做rand()%99'?沒有在要求的地方使用'rand()' – smac89

+0

我只是測試它,所有這些都確保我正確地接近它。 @ Smac89 – Nijoel

回答

3

寫橫穿monthlySalesarray和 增加了這一切,並在yearlySales所產生的總存儲必要的代碼。請務必 確保yearlySales與有效值結束,即價值美分的 小於100

Money monthlySales[12], yearlySales; 

yearlySales.cents = 0; 
yearlySales.dollars = 0; 

for (int i = 0; i < 12; i++) 
{ 
    yearlySales.cents += monthlySales[i].cents;  // Add up the cents 
    yearlySales.dollars += monthlySales[i].dollars; // Add up the dollars 

    yearlySales.dollars += yearlySales.cents/100; // If cents > 100, increase dollars appropriately. 
    yearlySales.cents = yearlySales.cents % 100; // If cents > 100, set it to the remainder. 
} 
+0

我很感謝@abelenky你的代碼有意義。 – Nijoel

+0

請考慮[**接受我的答案**](http://meta.stackoverflow.com/help/someone-answers)。謝謝 – abelenky

1
 //to compute Sum 
    for (int i = 0; i < 12; i++) 
     { 
      yearlySales.cents +=monthlySales[i].cents;//keeps adding yearlySales cents for each month 
      yearlySales.dollars +=monthlySales[i].dollars;//keeps adding yearlySales dollars 
     } 
    //if cents 100 convert it into dollars eg:720cents is convereted to 7$ 20 cents and 7 dollars is added  to yearly dollars 
    if(yearlySales.cents > =100) 
    { 
    yearlySales.dollars+=yearlySales.cents/100; 
    yearlySales.cents=yearlySales.cents%100; 
    } 
+0

我很欣賞我剛剛被欺騙的幫助,認爲正在計算實際值。 @Kaushik。 – Nijoel

0

這工作呢!

float dollar = 0; 
float cent = 0; 
for (int i = 0; i < 12; i++) { 
    dollar += monthlySales[i].dollars; 
    cent += monthlySales[i].cents; 
    do { 
     if (cent > 100) { 
     dollar += 1; 
     cent -= 100; 
      } 
    }while (cent > 100); 
} 

yearlySales.dollars = dollar; 
yearlySales.cents = cent;