輸入一串數逗號隔開,排序後n個一行輸出
阿新 • • 發佈:2019-02-05
題目:
輸入個數不限的數字,以逗號為分隔,以回車鍵為結束,數字大小在-32768-32767之間。從小到達排序後以4個數每行輸出
如:
輸入:12,34,-12,23,123,56,-9,789
輸出:-12 -9 12 23
34 56 128 789
標程
#include<iostream> #include<algorithm> #include<string> using namespace std; const int MAX = 10010; string str; //存輸入字串 int result[MAX] = { 0 };//存輸入的實際值 int num = 0;//存數的個數 int main(){ cin >> str; int i = 0; while (i < str.length()){ int sign = 1;//數的符號位 if (str[i] == '-'){ i++; sign = -1; } int ans = 0;//存當前數的值 while (str[i]!=',' && i < str.length()){ ans = ans * 10 + (str[i] - '0'); i++; } ans = sign*ans; //加上符號位 result[num] = ans; //存入結果陣列 num++; ans = 0; if (str[i] == ',') //若為逗號則跳過一個字元 i++; } sort(result, result + num); //排序 int n = 0; while (n <= num){ //還有數時迴圈 int count = 1; while (count < 4 && n < num){ //先輸出三個並空格隔開 cout << result[n] << ' '; n++; count++; } if (n < num){ //如果還有再輸出一個並換行 cout << result[n] << endl; n++; } } cin >> str; //做除錯檢查輸出 return 0; }