資料可分為三類,分別為名字、薪水、獎金。雖然後兩者實際上為數字,不過直接當字串處理比較方便。
在使用迴圈讀取資料時,就分別用三個變數紀錄最長長度。
話說同學用vector,知道我直接開三個長度1000的array吐槽說解法很暴力XD
字串固定長度使用: setw(n)
數字設定精度使用:fixed << setprecision(n) << string
程式碼:
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
int main() {
int n;
string names[1000], salary[1000], award[1000];
while (cin >> n)
{
int nameLength = 0, salaryLength = 0, awardLength = 0;
for (int i = 0; i < n; i++)
{
cin >> names[i] >> salary[i] >> award[i];
if (names[i].size() > nameLength)
nameLength = names[i].size();
if (salary[i].size() > salaryLength)
salaryLength = salary[i].size();
if (award[i].size() > awardLength)
awardLength = award[i].size();
}
for (int i = 0; i < n; i++)
{
cout << setw(nameLength) << names[i] << "| "
<< setw(salaryLength) << salary[i] << "| "
<< setw(awardLength) << award[i] << endl;
}
}
return 0;
}
沒有留言:
張貼留言