Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 20.04.2016
Сообщений: 25

Матрицы: распределить участников турнира по убыванию набранных очков

29.05.2016, 15:36. Показов 2229. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
при записи данных о соревнованиях по шахматам формируется матрица турнирного особого вида. результат матча может быть 1 (выигранная партия), 0 (проигранная) или 0,5 (ничья).
при вводе данных нужно получить симметричную матрицу турнира, где на главной диагонали нули, для обоих участников 0,5 в случае ничьей, а если участник выиграл (1), то его партнер проиграл, и ему записывается 0.
НАПИСАТЬ ФУНКЦИЮ для ввода данных турнира в диалоге с формированием матрицы турнира.
НАПИСАТЬ ФУНКЦИЮ обработки турнира, чтобы определить победителя.
НАПИСАТЬ ФУНКЦИЮ обработки турнира, чтобы распределить участников по убыванию набранных очков.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.05.2016, 15:36
Ответы с готовыми решениями:

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

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

Распределить участников по местам
Забиваются фамилии участников и оценки 8 судей. Необходимо вывести таблицу, в которой участники распределены по местам. Не получается...

1
 Аватар для lawr
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
30.05.2016, 18:51
Лучший ответ Сообщение было отмечено molodecia как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <iostream>
    void Tournament (float **A, int n){
        std::cout<<"select result: 1- first player win, 2- second player win, 0- draw\n";
        int key;
        for (int i=0; i<n; i++)
            for (int j=i+1; j<n; j++)
            {
                std::cout<<"gamer "<<i+1<<" vs. gamer "<<j+1<<'-';
                std::cin>>key;
                switch(key){
                    case 0:
                        A[i][j]=0.5, A[j][i]=0.5;
                        break;
                    case 1:
                        A[i][j]=1.0;
                        break;
                    case 2: 
                        A[j][i]=1;
                        break;
                    default:
                        std::cout<<"incorrect. repeeat select: ";
                        j--;
                }
            }
    }
    int Show (float **A, int n){
        for (int i=0; i<n; i++){
            for (int j=0; j<n; j++)
                std::cout<<A[i][j]<<'\t';
        std::cout<<std::endl;
        }
    }
    void Winner (float **A, int n){
        int max_point=0, winner;
        for (int i=0; i<n; i++){
            int point=0;
            for (int j=0; j<n; j++)
                point+=A[i][j];
            if (point>max_point){
                max_point=point;
                winner=i+1;
            }
        }
        std::cout<<"player No"<<winner<<" win!\n";
    }
    void Rank (float **A, int n){
        float *Point= new float [n];
        int *Number= new int [n];
        for (int i=0; i<n; i++){
            Number[i]=i;
            Point[i]=0.0;
            for (int j=0; j<n; j++)
                Point[i]+=A[i][j];
        }
        for (int i=0; i<n-1; i++)
            for (int j=i+1; j<n; j++)
                if (Point[i]<Point[j]){
                    float temp=Point[i];
                    Point[i]=Point[j];
                    Point[j]=temp;
                    int temp1=Number[i];
                    Number[i]=Number[j];
                    Number[j]=temp1;
                }
        std::cout<<"points:"<<std::endl;
        for (int i=0; i<n; i++)
            std::cout<<"player No"<<Number[i]+1<<'-'<<Point[i]<<std::endl;
    }
    
int main(){
    int q;
    std::cout<<"enter the players quantity: ";
    std::cin>>q;
    float **FixtureList= new float* [q];
    for (int i=0; i<q; i++)
        FixtureList[i]= new float [q];
    for (int i=0; i<q; i++)
        for (int j=0; j<q; j++)
            FixtureList[i][j]=0;
    Tournament(FixtureList, q);
    Show (FixtureList, q);
    Winner (FixtureList, q);
    Rank (FixtureList, q);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.05.2016, 18:51
Помогаю со студенческими работами здесь

Учет очков, набранных каждой командой при игре в баскетбол
буду благодарен! Составить программу, которая ведет учет очков, набранных каждой командой при игре в баскетбол. Количество очков,...

Вычислить суммарное количество очков, набранных каждой командой по результатам игры
результаты игры квн, в которой принимали участие 3 команды и проводилось 5 конкурсов, сохранены в двумерном массиве. Написать...

Создать программу для определения кол-ва набранных очков в десяти выстрелах в мишень
Написал что то подобное, но в математике не очень то понимаю, поэтому прошу вас помочь написать какие будут уравнения и какие условия будут...

Распределить участников обсуждений за круглым столом с максимальной активностью
Имя входного файла: table.in Имя выходного файла: table.out Ограничение времени: 1 с Ограничение реального времени: 5 с Ограничение...

Сформировать список номеров команд, участвовавших в чемпионате, в порядке невозрастания количества набранных очков
Добрый день , ребята помогите решить задачу.В последнем цикле выдает ошибку , не могу никак разобраться. ( Найти номера команд,выигравших...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru