1. 程式人生 > >JSK-16016 單詞排序【排序】

JSK-16016 單詞排序【排序】

單詞排序 小紅學會了很多英文單詞,媽媽為了幫小紅加強記憶,拿出紙、筆,把 NNN 個單詞寫在紙上的一行裡,小紅看了幾秒鐘後,將這張紙扣在桌子上。媽媽問小紅:“你能否將這 N 個單詞按照字典排列的順序,從小到大寫出來?”小紅按照媽媽的要求寫出了答案。現在請你編寫程式幫助媽媽檢查小紅的答案是否正確。注意:所有單詞都由小寫字母組成,開頭字母全都不相同,單詞兩兩之間用一個空格分隔。 輸入格式 輸入包含兩行。 第一行僅包括一個正整數 N(0<N≤26)。 第二行包含 N 個單詞,表示媽媽寫出的單詞,兩兩之間用一個空格分隔。單個單詞長度不超過 10。 輸出格式 輸出僅有一行——針對媽媽寫出的單詞,按照字典排列的順序從小到大排列成一行的結果,單詞兩兩之間用一個空格分隔。 樣例輸入 4 city boy tree student 樣例輸出 boy city student tree 題目來源

2016 年海淀區中小學生資訊學奧林匹克競賽

問題連結JSK-16016 單詞排序 問題描述:(略) 問題分析:     這是一個排序問題,還是用C++語言來實現比較方便。 程式說明:     題面很坑,說好的“輸出,單詞兩兩之間用一個空格分隔”,結果讓俺格式錯誤一次,為什麼輸出的每個單詞後面需要一個空格? 參考連結:(略) 題記:能不用陣列就不用陣列,儲存要能省則省。

AC的C語言程式如下:

/* JSK-16016 單詞排序 */

#include <bits/stdc++.h>

using namespace std;

const int N = 26;
string s[N];
int main() { int n; cin >> n; for(int i = 0; i < n; i++) cin >> s[i]; sort(s, s + n); // 輸出結果 for(int i = 0; i < n; i++) cout << s[i] << " "; cout << endl; return 0; }