Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 07.05.2018
Сообщений: 53

Определение лучшего результата

02.06.2018, 06:36. Показов 1203. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана следующая задача:
В соревнованиях по прыжкам в длину участвовали N-спортсменов. Каждый спортсмен мог сделать М-попыток. Результаты (длины прыжков) занесены в таблицу A[M][N]. Если результат не засчитывали, то вместо длины прыжков заносили ноль.
Определить лучший результат каждого спортсмена.


Код уже написал, вот только выводит не совсем верно... Основная проблема начинается с момента, когда определяем лучший результат: либо выводит неправильный порядковый номер спортсмена, либо же выходят неправильный порядковый номер лучшей попытки.
Можете подсказать как исправить код, чтобы все выводилось верно?

Имеющийся код:
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
int pop = 0;
            Random r = new Random();
 
            Console.Write("Количество спортсменов =  ");
            int N = Convert.ToInt32(Console.ReadLine());
            Console.Write("Количество попыток = ");
            int M = Convert.ToInt32(Console.ReadLine());
            int[,] arr = new int[M, N];
 
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    arr[j, i] = r.Next(0, 3);
                    if (arr[j, 1] == 0 && i == 1)
                    {
                        pop++;
                    }
                }
            }
            Console.Write("\n");
            for (int i = 0; i < N; i++)
            {
                Console.Write("Спортсмен № " + (i + 1) + " имеет результат: ");
                for (int f = 0; f < M; f++)
                {
                    Console.Write("{0} ", arr[f, i]);
                }
                Console.WriteLine();
            }
            int best = arr[0, 0];
            int Nb;
            int Mb;
            for (int ca = 0; ca < N; ca++)
            {
                for (int cr = 0; cr < M; cr++)
                    if (best < arr[cr, ca])
                    {
                        best = arr[cr, ca];
                        Nb = ca + 1;
                        Mb = cr + 1;
                    }
            }
            Console.Write("\n");
            Console.WriteLine("\tЛучший результат у:");
            
            for (int ca = 0; ca < N; ca++)
            {
                for (int cr = 0; cr < M; cr++)
                {
                    if (best == arr[cr, ca])
                    {
                        Console.WriteLine("\tСпортсмена под номером - " + (ca + 1));
                        Console.WriteLine("\tНомер попытки которого - " + (cr + 1));
                    }
                    Console.WriteLine(" ");
                }
                 
            }
               
            Console.ReadKey();
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.06.2018, 06:36
Ответы с готовыми решениями:

Что не хватает для достижения лучшего результата?
Подскажите, пожалуйста, что необходимо cделать, чтобы сайт www.idlazur.ru выл в Top 10 яндекса по слову Полиграфия. Как ни стараюсь,...

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

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

4
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
02.06.2018, 07:17
Цитата Сообщение от Steris Посмотреть сообщение
либо выводит неправильный порядковый номер спортсмена, либо же выходят неправильный порядковый номер лучшей попытки.
Не очень понял в чем проблема... Вроде, все работает правильно...
0
0 / 0 / 0
Регистрация: 07.05.2018
Сообщений: 53
02.06.2018, 07:37  [ТС]
Цитата Сообщение от Shogun31337 Посмотреть сообщение
Не очень понял в чем проблема... Вроде, все работает правильно...

Да уже заметил у себя и исправил правильный вывод, спасибо
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
02.06.2018, 08:25
Steris, да не за что!
Замечание по коду - когда работаете с многомерными массивами и соответственно, проходите элементы в цикле, правильнее в первом цикле обходить первую размерность, во втором - вторую и т.д. Это связано с расположением массива в памяти. Например, двумерный массив располагается в памяти следующим образом - (1,1), (1,2), (1,3), (2,1), (2,2), (2,3). И когда Вы проходите по всем элементам, Вы проходите по ним последовательно. А в таком варианте как сейчас реализовано у Вас, приходится перепрыгивать с элемента на элемент, что увеличивает время обработки массива. В данном случае это, конечно, не критично и не заметно, но лучше привыкать всегда делать правильно.
1
0 / 0 / 0
Регистрация: 07.05.2018
Сообщений: 53
02.06.2018, 15:40  [ТС]
Цитата Сообщение от Shogun31337 Посмотреть сообщение
Замечание по коду - когда работаете с многомерными массивами и соответственно, проходите элементы в цикле, правильнее в первом цикле обходить первую размерность, во втором - вторую и т.д. Это связано с расположением массива в памяти. Например, двумерный массив располагается в памяти следующим образом - (1,1), (1,2), (1,3), (2,1), (2,2), (2,3). И когда Вы проходите по всем элементам, Вы проходите по ним последовательно. А в таком варианте как сейчас реализовано у Вас, приходится перепрыгивать с элемента на элемент, что увеличивает время обработки массива. В данном случае это, конечно, не критично и не заметно, но лучше привыкать всегда делать правильно.
Большое спасибо за совет!
В следующий раз обязательно учту
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.06.2018, 15:40
Помогаю со студенческими работами здесь

Вывод на экран лучшего результата после каждого выступления фигуристов
184. На соревнованиях по фигурному катанию оценки заносятся в компьютер. Составить программу для вывода на экран лучшего результата после...

Вывод на экран лучшего результата после каждого выступления фигуристов
184. На соревнованиях по фигурному катанию оценки заносятся в компьютер. Составить программу для вывода на экран лучшего результата после...

Заказ программы. Перебор различных комбинаций параметров и расчеты, выбор лучшего результата
Желательно C#, но не принципиально - можем обсудить. Необходимо реализовать программную часть к диплому. Программа должна осуществить...

Составить программу для вывода на экран лучшего результата после выступления фигуристов
Условие: на соревнованиях по фигурному катанию оценки заносятся в компьютер. Составить программу для вывода на экран лучшего результата...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
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