2016-05-29 6 views
-3

私はCでこのMazeゲームをプログラミングしています。私は文字列name[15]score[15]を持っていますので、出力すると "John 1000"と出力されますので、ユーザーがゲームを終了するたびにその出力をファイルに書き出す必要があります。その後、ファイルは3回ゲームを実行し、それを仕上げにこのように終わる必要がありますので、他のユーザがソートそれをより高いまたは低いスコアを取得する場合:2つの文字列をCのファイルに書き込んでソートするにはどうすればいいですか?

  1. クラーク25000
  2. ジョン23000
  3. ルイ21000

答えて

5

あなたがすべきことは、ユーザーがゲームを終了するたびに、動的に割り当てられた配列をロードし、それをソートしてから書き直すことです。

0

まず、char str1 []、char str2 []およびstruct s * nextを構造体sとします。 (リンクリストを作成する場合) ここでは ''と '\ n'が区切り文字であるため、最初の文字列を読み込み、 '〜に入るまでstr1 []、2番目の文字列s-> str2 []で読み込みます'\ n'(構造体sのmalloc()を実行した後)

新しいエントリを追加するときは、リストをトラバースします。最初のノードの値(atoi(s-> str2 [])が新しいエントリの値よりも小さい場合、新しいエントリを最初のノードにし、そうでない場合は、リンクされたリストのノードの値が新しいエントリの値より小さくなるまでトラバースしてください)

基本的には、リスト自体に挿入しながら並べ替える(値を下降させる)。

したがって、(a)6、(b)2、(c)7、(d)8、(e)5 (a)6 - > NULL 2.(a)6 - >(b)2-> NULL 3.(c)7 - >(f)1は次のようにソートできる値です。 (d)8 - >(a)6 - >(b)2-> NULL (d)8 - >(c)7 - >(a)6 - >(e)5 - >(b)2-> NULL >(b)2 - >(f)1-> NULL

関連する問題