Coursera 學習記錄:發票統計(使用switch進行資料歸類)
阿新 • • 發佈:2018-12-16
描述
有一個小型的報賬系統,它有如下功能: (1)統計每個人所報發票的總錢數 (2)統計每類發票的總錢數 將此係統簡化為如下:假設發票類別共有A、B、C三種;一共有三個人,ID分別為1、2、3。
輸入 系統輸入包含三行,每行第一個數為人員ID(整型,1或2或3),第二個數為發票總張數(張數不超過100), 之後是多個發票類別(字元型,A或B或C)和相應發票金額(單進度浮點型,不超過1000.0)。 輸出 輸出包含六行,前三行為每人(按ID由小到大輸出)所報發票總錢數(保留兩位小數),後三行為每類發票的總錢數(保留兩位小數)。
//輸出兩位小數 #include<iomanip>; cout<<fixed<<setprecision(2)<<num<<endl; //對於ABC的分類。可以使用switch
#include<iostream>; #include<iomanip>; using namespace std; int main() { float m[3][3] = { 0 }; // 明確一點:使用陣列+for迴圈進行儲存 // 陣列的邊界是確定的:3×3 int ID, n; for (int i = 0; i < 3; i++) { cin >> ID >> n; for (int i = 0; i < n; i++) { char type; float price; cin >> type >> price; switch (type) { case 'A':m[ID - 1][0] += price; break; case 'B':m[ID - 1][1] += price; break; case 'C':m[ID - 1][2] += price; break; default:break; } } } for (int i = 0; i < 3; i++) { cout << i + 1 << ' '; cout << fixed << setprecision(2) << m[i][0] + m[i][1] + m[i][2] << endl; } for (int i = 0; i < 3; i++) { cout << char(i + 65) << ' '; cout << fixed << setprecision(2) << m[0][i] + m[1][i] + m[2][i] << endl; } return 0; }