2016-01-13 84 views
1

如果我想要那种输出,我该怎么办?我不能得到那个时间:正确列出。我的输出查找时间:6 6 6 6 6如何在C++中获取列表?

How many days: 
4 
1. day h:7 
2. day h:8 
3. day h:9 
4. day h:5.4 
Total hours: 29.4 
Average working day: 7.35 
Hours: 7 8 9 5.4 

我的代码看起来像

cout << "How many days:\n"; 
cin >> days; 

for(ind=0; ind<days; ind++) { 
    cout << ind+1 << ". day h: "; 
    cin >> hours; 
    sum += hours; 
} 

cout << "Total hours: " << sum << endl; 
average = sum/days; 

cout << "Average working day: " << average << endl; 
cout << "Hours: "; 
for(ind=0; ind<days; ind++) { 
    cout << hours << " "; 
} 
cout << endl; 
+2

你用问题标题回答了你自己的问题。你需要一个容器(一个列表是足够的,就像一个向量,deque等),以保持输出期间输入的返流值。现在你反复喷射*最后*小时值。 – WhozCraig

+0

_“小时:6 6 6 6 6”。_这个输出实际上应该是什么意思?请介意详细说明一下。 –

+0

@πάνταῥεῖ:我相信“小时:6 6 6”的意思是“启示录在我们身上!” –

回答

0

呦,您可以使用std::vector作为您的名单,并使用std::accumulate来计算您的名单总数:

#include <vector> // std::vector 
#include <numeric> // std::accumulate 

int main() 
{ 
    // read days 
    int days; 
    cout << "How many days:\n"; 
    cin >> days; 

    // read hours for each day 
    std::vector<double> hoursList; 
    for(int ind=0; ind<days; ind++) { 
     cout << ind+1 << ". day h: "; 
     double hours; 
     cin >> hours; 
     hoursList.push_back(hours); // add one element at back of your vector 
    } 

    // clacualte sum of all hours in vector 
    double sum = std::accumulate(hoursList.begin(), hoursList.end(), 0.0); 

    cout << "Total hours: " << sum << endl; 
    doubleaverage = sum/days; 

    cout << "Average working day: " << average << endl; 
    cout << "Hours: "; 
    for(int day=0; day < (int)hoursList.size(); day ++) { 
     cout << day+1 << ". " << hoursList[day] << std::endl; 
    } 
    cout << endl; 

    return 0; 
} 
2

您需要使用矢量从标准库。尝试下面的内容。你可以通过不同的数据结构,它将来会有所帮助。 我希望这可以帮助。

std::vector<double> myVectorList; 
cout << "How many days:\n"; 
cin >> days; 

for(ind=0; ind<days; ind++) { 
    cout << ind+1 << ". day h: "; 
    cin >> hours; 
    sum += hours; 
    myVectorList.push_back(hours); 
} 

cout << "Total hours: " << sum << endl; 
average = sum/days; 
cout << "Average working day: " << average << endl; 
cout << "Hours: "; 

for(ind=0; ind<days; ind++) { 
    cout << myVectorList[ind] << " "; 
} 
+0

当然关于'std :: vector '? –

2

那么你可以主要使用适当的标准容器类像std::vector<double>采集输入:

cout << "How many days:\n"; 
cin >> days; 

std::vector<double> dailyWorkingHours; 

for(int ind=0; ind<days; ind++) { 
    cout << ind+1 << ". day h: "; 
    double hours; 
    cin >> hours; 
    dailyWorkingHours.push_back(hours); 
    sum += hours; 
} 

,并从容器中打印出所收集的值,因为你需要:

for(ind=0; ind<dailyWorkingHours.size(); ind++) { 
    cout << ind + 1 << ". day h:" << dailyWorkingHours[ind] << std::endl; 
}