sort(){puts(">>追加済み件数を何でソートしますか?(作成されたが未追加のものはソートの対象ではありません。メニューへもどります。なり、returnするまで分割し続ける。いった場での初解答失礼します。C言語を習い始めたばかりなので、自身の学習のため、たまたま見つけたこの質問のソースコードを記述してみました。私にはまだコードの解読は大変なので、記載のコードはあまり見ていないです...。別のプログラムになるかと思います。コメントで可能な限り説明を盛り込みましたが、それでもかなり分かりづらいかとおもいます。構造体というのを使うのも初めてで、線形?リストというのもなんだかわかっていません。一般によく書かれる省略した書き方?もよくわかっていないので、表現がくどくなっているコードもあるかと思います。ソートにはマージアルゴリズムというのを参考に記述したのですが、これも初で調べながら試行錯誤したため、デバッグのコードが残っていたり、コメントが独り言のようになっていたりします...。申し訳ありませんが、コードが非常にみづらいかと思います...。遭遇する知識が多く、大変勉強させていただきました。コード説明---質問の変更したい内容のとおり、完全に別れた機能として「新規作成」と「追加」、また、番号によるソート機能のコードを記述しました。新規作成で一時的な構造体へ保存して、追加でメインの構造体へ移動させる、という方式をとり、その都度リストを表示させ中身を確認、一括削除できるようにしました。点数でのソートに関しては番号でのソートと同じ要領で記述すれば実装できます。ソート自体に関しても他にもたくさんアルゴリズムがあるようなので、自分のプログラムにあったものを探してみるといいかとおもいます。Studioではコンパイルできませんでした。**当方、Eclipseですべて記述しました。そのまま以下のコードをコピペするとエラーを大量に吐きます。調べた結果、コンパイル済みヘッダーを読み込まないようにします。つづいて、sscanfを使用しているのでこれを使用できるようにソースコードに一行記述を加えます(ググればすぐでてきます)。最後に残るエラーですが、マージソートを扱う際に可変長配列を定義している部分になりますが、Visualstudioでは拡張子をcにしてC言語としてコンパイルしても、このような記述はできないようです。工夫が必要かと思われます。以下にソースコードと、実行結果のスクショを載せました。参考になれば幸いです。4:puts(">>終了します。一文字のみ入力してください。newStudent(){/*学生情報の入力をループ*/while(1){puts(">>学生の情報を入力してください。%d",list_temp[number].id,list_temp[number].name,list_temp[number].score);puts(">>新規作成されました。指示を入力してください。追加はされておりません。\n",number_temp);puts(">>指示を入力してください。追加する場合は一度メニューにもどり、新規作成を選択してください。格納*//*削除が指示された場合*/if(menu==2){deleteTemp();puts("追加せず、削除しました。