Форум программистов, компьютерный форум CyberForum.ru

Cортировать массив структур по полю - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
kmsboy
Сообщений: n/a
25.11.2008, 09:07     Cортировать массив структур по полю #1
Ребята помогите, зачёт на носу, РГЗ сдавать нужно, ужас
Помогите отсортировать массив структур по полю int win!!!


Составить программу обработки итоговой таблицы шахматного турнира.
Игры проходили в один круг, каждый из участников встретился
с другими участниками по одному разу. Обработка должна включить:
- формирование итоговой таблицы турнира с расстановкой участников
согласно набранным очкам (за победу - 1, за ничью - 0,5, за поражение - 0);
- вывести фамилии 3-х участников: больше всего побед, поражений, ничьих.

Используемый файл "players.txt"

players_1 1 5 9
players_2 2 6 8
players_3 3 7 7
players_4 4 8 6
players_5 4 8 6

Код
/*
* Код программы
*/

#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <math.h>
#include <windows.h>
#include <iostream.h>

using namespace std;

void rusmsg(char *string) {
    char message[100];
    CharToOem(string, message);
    cout << message;
}
/*
 * Обьявляем переменные необходимые для работы
 */

int buffer;
char filename[64];
int ch, i = 0;
double w;

FILE *fp;

struct player {
    char name[32];
    int win, tie, spank;
    double point;
} pd[sizeof (i)];

void main() {
    rusmsg("Лабораторная работа №6\ncтудента гр. 7ВТ3Д-1\nВасильев А.Н.\n\n");

    if ((fp = fopen("players.txt", "r")) == NULL) {
        rusmsg("Файл не найден\n>");
        getch();
        exit(0);
    }
    /*
     * Вывод заголовка таблица учасников турнира
     */
    cout << " --------------------------------------------------" << endl;
    rusmsg("| # |  Игрок  | Побед | Ничьх | Поражений |  Очки  |\n");
    cout << " --------------------------------------------------" << endl;
    /*
     * Формирование таблицы участников турнира
     */
    while (ch != EOF) {
        fscanf(fp, "%s %i %i %i", &pd[i].name, &pd[i].win, &pd[i].tie, &pd[i].spank);
        pd[i].point = pd[i].win + (pd[i].tie * 0.5);
        ch = fgetc(fp);
        i++;
    }
    fclose(fp);
    getch();
}
Заранее благодарен!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2008, 09:07     Cортировать массив структур по полю
Посмотрите здесь:

C++ Сортировка структур по полю
C++ HOWTO: сортировка массива структур по произвольному полю
C++ Сортировка массива структур по определенному полю
Std::min_element по заданному полю массива структур C++
Отсортировать массив структур по заданному полю C++
C++ Сортировка массива структур по заданному полю
C++ Сортировка массива структур по заданному полю
C++ Рассортировать массив структур в алфавитном порядке по первому полю
Cортировать массив по возрастанию C++
C++ Создать массив структур, который можно редактировать: поиск по заданному полю, удаление и добавление элементов
Сортировка массива структур по одному полю C++
C++ Сортировка массива структур по одному полю

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 05:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru