アプリ版:「スタンプのみでお礼する」機能のリリースについて

数人分の点数データがあります。構造体には氏名と点数が書いてあります。これを名前順に並べ変えたいのですが、どのようにすればよいのでしょうか?初心者で調べてみてもよくわかりません。

質問者からの補足コメント

  • すみません。説明不足でした。
    氏名はアルファベットでかかれており、姓のabc順に並べ替えます。

      補足日時:2021/02/28 16:36

A 回答 (4件)

>プログラムの一部抜粋してみました。


一部でなく、全部載せてください。
全てのデータを読み込むところまでは、完成していないのですか?
(完成の意味は、コンパイルエラーがなく、実行すると正常に全データを読み込めるという意味です)
もし、そうでないなら、まず、全データを読み込めるようにするのか先決かと。
提示されたソースは途中までなので、全データの読み込みが完成しているのか、完成していないのかが判りません。
    • good
    • 0

並べ替える前までのソースはどうなってますか。

    • good
    • 0
この回答へのお礼

Taro Yamada 46
Hanako Suzuki 69
Yumi Tanaka 83



↑tensu.txt
このファイルを名前順に並び替えたファイルを新たに作りたいです。

プログラムの一部抜粋してみました。
#include <stdio.h>
#include <string.h>

int main(void)
{
FILE*fp;

typedef struct
{
char FamilyName[32];
char FirstName[32];
int Score[5];
} Student;


fp=fopen("tensu.txt","r");
if(fp == NULL){
perror("ファイルの読み込みに失敗/n");
else{
while (fscanf(fp,"%s%s%d", FamilyName,FirstName,&Score) == 3){

お礼日時:2021/02/28 17:48

「名前順」が「名前の読み仮名順」とした場合、その構造体にはデータとして「名前の読み仮名」が必要となりますので、これだけのデータでは成立しません。

これだと「名前で使っている漢字の文字コード順」になってしまいます。
    • good
    • 0

標準関数の、qsortとstrcmpを調べてみれば答えは見つかると思います。

    • good
    • 0
この回答へのお礼

見てみたのですがよくわかりませんでした。なんかすみません、、、

お礼日時:2021/02/28 17:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!