У меня есть .txt файл, который содержит следующее:Сортировки последнего столбца в массиве строк в C
1 - Ground 2
2 - Ground 7
3 - City 1
4 - Hill x
5 - City 3
6 - City 4
7 - Hill 6
Задача состоит в том, чтобы упорядочить эти игровые слоты в определенном порядке: первого столбца файл является номер слота, то второго столбец файла является типом слота, а третьего столбца файла является номера слота, который расположен справа от паза в вопросе.
x
означает, что ни одного слота справа от этого слота так, что это означает, что слот 4 (Хилл) является последним слотом в упорядоченных слотах. Таким образом, программа должна выполнить поиск по текстовому файлу, чтобы найти x
, а затем посмотреть, что номер слота находится на этой строке, чтобы увидеть, какой слот находится слева от него. После завершения этого следует вывод следующее:
(5,City)->(3, City)->(1, Ground)->(2,Ground)->(7,Hill)->(6,City)->(4,Hill)
Это мой код до сих пор:
Этот код читает в текстовый файл и печатает первоначальный список слотов. Любая помощь будет принята с благодарностью. Благодарю.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char *SLOTS_FILE_PATH = "slots.txt";
char slotsArr[7][100];
char newSlots[7][100];
int main()
{
int i = 0;
int j;
char search;
FILE *fx = fopen(SLOTS_FILE_PATH, "r+");
if (fx == NULL)
{
perror("Error opening slots file");
i = -1;
}
else
{
while(fgets(slotsArr[i],
sizeof(slotsArr[i]), fx) != NULL)
{
i++;
}
fclose (fx);
}
printf("\n-------Initial List of Slots-------\n");
for (j = 0; j < i; j++)
{
printf("%s", slotsArr[j]);
}
printf("\n-------Sorted List of Slots-------\n");
}
********************* И это то, что он выводит **************** *********
-------Initial List of Slots-------
1 - Ground 2
2 - Ground 7
3 - City 1
4 - Hill x
5 - City 3
6 - City 4
7 - Hill 6
-------Sorted List of Slots-------
Вам нужна структура, правильно считывающая данные в структуре 'qsort()' и соответствующие функции сравнения. –
Вы понимаете, что ваши данные фактически являются (набором) связанных списков? (или D (A) G, или дерево ...) – wildplasser
Вы уже узнали о типах 'struct'? Вы почти наверняка будете использовать его для этого упражнения. –