C/C++——讀入一系列由空白分割的(名字,值)對,其中每個名字是由空白分隔開的一個單詞,值是一個整數或者一個浮點值, 計算並列印出對應於每個名字的所有值之和與平均值..
要求:
讀入一系列由空白分割的(名字,值)對,其中每個名字是由空白分隔開的一個單詞,值是一個整數或者一個浮點值,計算並列印出對應於每個名字的所有值之和與平均值,以及所有名字的和與平均值。(C++程式設計語言,第六章習題3)
考察:資料結構的使用。主要使用 map, pair, string結構
主要資料結構定義:map<string, pair<int, double> > m;
原始碼:
/*************************************************************************
> File Name: 6_3_map_pair.cpp
> Author:
> Mail:
> Created Time: 2016年03月02日 星期三 11時06分43秒
************************************************************************/
#include <iostream>
#include <map>
#include <utility>
#include <string>
using namespace std;
int main()
{
map<string, pair<int, double> > m;
string name;
double value;
while(cin >> name >> value){
if(m.find(name) == m.end()){//沒有找到name,則要重新建立一個成員
m[name] = make_pair(1, value);
}
else{
m[name].first++;
m[name].second += value;
}
}
int num = 0;
double sum = 0.0;
for(map<string, pair<int, double> >::iterator it = m.begin(); it != m.end(); ++it){
cout << (*it).first << ": sum = " << (*it).second.second << ", avg = " << it->second.second / it->second.first << endl;
num += it->second.first;
sum += it->second.second;
}
cout << "all sum = " << sum << ", avg = " << sum / num << endl;
return 0;
}
執行結果:
linux 2
linux 3
ever 1
linux 1
ever 4
ubuntu 2
ever: sum = 5, avg = 2.5
linux: sum = 6, avg = 2
ubuntu: sum = 2, avg = 2
all sum = 13, avg = 2.16667
輸入的時候按下Ctrl+d 退出while輸入迴圈。參考:linux系統下怎麼輸入EOF退出輸入迴圈while(getline(cin, temp)){.....}
相關文章
- 由一個例子到python的名字空間Python
- C語言輸入一個數輸出對應的值C語言
- JAVA 求出一個一維int型陣列的元素最大值、最小值、平均值、和所有元素之和Java陣列
- 給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用陣列
- C++中一個名字查詢的小知識C++
- 當前鍵值對的下一個值 演算法演算法
- select multiple返回的value值是一個陣列陣列
- 其中星期取值0指星期日,其它取值遞推。前面五個域,每個域都可以用*表示所有合法的值,或者用一個列表列出合法的值,各值之間用“,”隔開,也可以用“-”表示一個範圍。
- 一個數值儲存核取方塊的值
- excel表格中怎樣將一列的數值全部加上一個數值Excel
- C++ 引用 (交換兩個數的值)C++
- c語言:定義一個含10個整型元素的一維陣列,從鍵盤上輸入10個元素值,求去掉最大值和最小值之後的元素平均值C語言陣列
- Python 字典中一鍵對應多個值Python
- 將一個陣列賦值給另外一個陣列陣列賦值
- 給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。陣列
- C++取反交換兩個數的值C++
- POJ 2442-Sequence(優先佇列-m組n個數每組取一個求n個最小值)佇列
- Python有 n 個物品和一個大小為 m 的揹包. 給定陣列 A 表示每個物品的大小和陣列 V 表示每個物品的價值.。。Python陣列
- 於是,我們給前端分享會定義了一個未定義的名字前端
- 查詢固定條數的某個值之和
- 聊聊如何實現一個支援鍵值對的SPI
- vue 給一個值重置初始值Vue
- 有關C++引數傳值的一個問題探討C++
- 統計一個字串中的單詞的個數,並列印各個單詞字串
- 怎樣用一個佇列和一個棧實現求一個表示式的值?佇列
- List<實體類>轉換成map 一個鍵對應多個值
- [java面試]javascript中dom取值問題radio名字一樣歸屬於同一個組,求點選的是哪一個...面試JavaScript
- 一個程式設計師眼中的價值程式設計師
- C語言:10個元素整型陣列,最小值和第一個元素交換,最大值與最後一個元素交換C語言陣列
- 【OpenCV】訪問Mat影象中每個畫素的值OpenCV
- 工程實踐:給函式取一個"好"的名字函式
- 找出一堆整數中兩個元素和為指定值的所有組合
- javascript實現的對陣列每一個元素都執行一個函式JavaScript陣列函式
- 一個關於值傳遞呼叫的問題
- 一個浮點數計算的問題
- shell指令碼----輸入一個整數,將每個位上的數輸出出來,並求和指令碼
- Oracle查詢分割槽表的最後一個分割槽值Oracle
- 一SQL,每隔n個資料,取其中max,min值SQL