Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Cортировать массив структур по полю 
:(
    Опции темы
kmsboy
  Дата 25.11.2008, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 23.6.2008

Репутация: нет
Всего: нет



Ребята помогите, зачёт на носу, РГЗ сдавать нужно, ужас :( 
Помогите отсортировать массив структур по полю 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();
}


Заранее благодарен!!!






PM MAIL ICQ   Вверх
knut
Дата 25.11.2008, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 7.2.2006

Репутация: нет
Всего: нет



вот тема уже была



--------------------
Цитата

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
PM MAIL   Вверх
Rififi
Дата 25.11.2008, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 3
Всего: 36



Код
bool operator < (const player& p1, const player& p2)
{
    return p1.win < p2.win;
}

...

std::sort(pd, pd+sizeof(i));

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.