Сортировка слов и цифр из файла в C - PullRequest
0 голосов
/ 16 мая 2018

Мне было поручено написать функцию, которая принимает строковую ссылку и целочисленный ссылочный параметр.Функция должна отсканировать файл .txt и установить в качестве опорных параметров имя игрока с наибольшим количеством очков и соответствующее количество очков.Это записано в файле Scores.txt, на который я должен ссылаться:

Ronaldo
10400
Didier
9800
Pele
12300
kaka
8400
Cristiano
8000

В настоящее время у меня написано так много кода, но я застрял в том, как я должен сопоставить имена с оценкой, так как они имеютбыть в определенном порядке.В моем коде я сортирую числа от наибольшего к наименьшему, но я не уверен, нужно ли это или нет.

FILE *input;
char name[name_len];
double score[score_len];
int a;
int b;
double placeholder;

input = fopen("scores.txt", "r");

if (input == NULL)
{
    printf("\n Cannot open scores.txt for input\n");
}
for (a =0; a < 5; ++a)
fscanf(input, "%s%lf", name, score);

for (a = 0; a < 5; ++a)                                     /* Repeats the step until three numbers are sorted*/
{
    for (b = a + 1; b < 5; ++b)                             /* Repeats until the last two numbers are sorted*/
    {
        if (score[a] < score[b])                                /* Sorts the 3 numbers using a placeholder to exchange the numbers in the array*/
        {
            placeholder = score[a];
            score[a] = score[b];
            score[b] = placeholder;
        }

    }
}


fclose(input);
return 0;

Любая помощь относительно решения или того, как я могу двигаться вперед, очень ценится.

1 Ответ

0 голосов
/ 16 мая 2018

Вы можете просто прочитать число и имя и заменить значение партитуры и имени, если оно больше.

char name[name_len];
double score[score_len];
char highScoreName[name_len];
double highScore = 0;
...
for (int a = 0; a < 5; ++a) 
   {
   fscanf(input, "%s %lf", name, score[a]);
   if (highScore < score[a]) 
   {
      highScore = score[a];
      strcpy(highScoreName, name);
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...