これは取り扱いソート+文字列の対象を、難易度がPAT B、3番目の質問では5つの質問に属します。
分析:辞書式順序は、辞書内の文字列の順序です。たとえば、
1。「A」は辞書未満です「」。
2。「A」は「B」よりも辞書的に小さいです。
3。「AA」は辞書式順序は、あまり「AAAA」より
4。「AAAA」は、ここでは最上位ビットから、文字の文字の比較「AAB」辞書順より辞書順で小さくなっています。
5。「AA」辞書式順序は、以下「AA」以上であります
書式#include <iostreamの> の#include <アルゴリズム> 使用して 名前空間はstdを、 ブール CMP(列 A、列B){ // 计算单词ASCII值、并转小写单词 INT SUM1 = 0、SUM2 = 0 。 以下のために(INT iが= 0 ; I <a.sizeを(); ++ I){ SUM1 + = [I]。 [I] = TOLOWER([I])。 } ため(INT iが= 0 ; I <b.size(); ++ I){ SUM2 + =B [I]、 B [I] = TOLOWER(B [I]); } IF(!A = B)戻り A <B; // 比較小文字ワード 他 リターン SUM1 <SUM2; // 同じ単語、それはよりASCIIでありますそして } int型のmain(){ int型nは、 文字列 STR [ 100 ]; CIN >> N; のための(INT I = 0、I <N; ++ I)// N単語入力 CIN >> STR [I]。 ソート(STR、STR + N-、CMP); //小文字の単語に変換辞書、元のワードASCIIコード、对单词排序 ため(INT iは= 0、I <N; ++ I){ 場合(I> 0)のprintf(" " )。 coutの << STR [i]は、 } 戻り 0 。 }