Результаты соревнований по прыжкам в длину представлены в виде матрицы
5х3 (5 спортсменов по 3 попытки у каждого). Указать, какой спортсмен и в какой попытке показал наилучший результат.Итак, результаты соревнований представляем в виде двумерного массива. После заполнения матрицы, необходимо определить максимальное значение прыжка, т. е. нужно организовать поиск максимального значения в двумерном массиве. Результат работы программы показан ниже:
// long_jump.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "rus");
const unsigned number_athletes = 5, // количество спортсменов
number_attempts = 3; // количество попыток
double result_array[number_athletes][number_attempts]; // массив результатов прыжков в длинну
cout << "Введите результаты соревнований:\n";
for (int counter_athletes = 0; counter_athletes < number_athletes; counter_athletes++)
{
cout << "для " << (counter_athletes + 1) << " спортсмена: ";
for (int counter_attempts = 0; counter_attempts < number_attempts; counter_attempts++)
cin >> result_array[counter_athletes][counter_attempts];
}
double best_result = result_array[0][0];
int numb_ath, // номер спортсмена с наилучшим результатом
numb_att; // номер попытки с наилучшим результатом
for (int counter_athletes = 0; counter_athletes < number_athletes; counter_athletes++)
{
for (int counter_attempts = 0; counter_attempts < number_attempts; counter_attempts++)
if (best_result < result_array[counter_athletes][counter_attempts]) // определяем наилучший результат
{
best_result = result_array[counter_athletes][counter_attempts];
numb_ath = counter_athletes + 1; // запоминаем номер спортсмена
numb_att = counter_attempts + 1; // запоминаем номер попытки
}
}
// в случае, ечли несколько спортсменов показали найлучший результат
cout << "\nлучший результат у спортсменов:\n";
for (int counter_athletes = 0; counter_athletes < number_athletes; counter_athletes++)
for (int counter_attempts = 0; counter_attempts < number_attempts; counter_attempts++)
if (best_result == result_array[counter_athletes][counter_attempts]) // определяем всех спортсменов с наилучшим результатом
{
cout << "№ спортсмена - "<< (counter_athletes + 1)
<< "\n№ nпопытки - " << (counter_attempts + 1) << endl << endl;
}
system("pause");
return 0;
}
Пример работы программы:
CppStudio.com
Введите результаты соревнований:
для 1 спортсмена: 2.60 2.90 3.10
для 2 спортсмена: 2.90 2.95 3.00
для 3 спортсмена: 3.45 3.15 3.16
для 4 спортсмена: 3.00 3.10 2.90
для 5 спортсмена: 3.15 3.20 3.45
лучший результат у спортсменов:
№ спортсмена — 3
№ nпопытки — 1
№ спортсмена — 5
№ nпопытки — 3
Комментарии
AndreiST
#include <iostream> using namespace std; int main() { double rez[5][3]; double rec_sportsmen=0; cout << "Enter the result of the competition (through a space): " << endl; for(int i(0); i<5; i++){ cout << "for sportsmen " << i+1 << " : "; cin >> rez[i][0] >> rez[i][1] >> rez[i][2]; if(rez[i][0]>rec_sportsmen) {rec_sportsmen=rez[i][0];} if(rez[i][1]>rec_sportsmen) {rec_sportsmen=rez[i][1];} if(rez[i][2]>rec_sportsmen) {rec_sportsmen=rez[i][2];} } cout << endl; cout << "The best result on sportsmen: " << endl; for (int i(0); i<5; i++) { for(int j(0); j<3; j++) { if(rez[i][j]==rec_sportsmen) { cout << "num. sportsmen-" << i+1 << endl; cout << "num. attempt-" << j+1; while (j!=2){ j++; if(rez[i][j]==rec_sportsmen){cout << " & " << j+1;} if(j==2){cout << endl << endl;} } } } } return 0; }RodjeR
#include <iostream> #include <conio.h> using namespace std; int main() { setlocale(0, ""); const int sport_number = 5, // номер спортсмена sport_attempts = 3; // попытки double sport[sport_number][sport_attempts]; int attempts = 3; for (int i = 0; i < 5; i++) { cout << "Результаты " << i + 1 << "-го спортсмена"; cin >> sport[0][i] >> sport[1][i] >> sport[2][i]; // прыжки } int max = 0; for (int i = 0; i < 5; i++) { for (int j = 0; j < 3; j++) { if (max < sport[i][j]) { max = sport[i][j]; } } } for (int i = 0; i < 5; i++) { for (int j = 0; j < 3; j++) if ( sport[i][j]==max ) cout << "Лучший результат у спортсмена " << max << " у " << j + 1 << " c " << i + 1 << " попытки" << endl; } _getch(); return 0; }Adam1983
#include <conio.h> #include <iostream> using namespace std; int main(int argc, char** argv) { setlocale (LC_ALL, "russian"); double xy[3][5]; double max=0; //Ввод результатов через пробел cout << "Введите результаты соревнований через пробел: "<< endl; for(int i(0); i<5; i++) { cout <<"результаты "<< i+1 << "-го спортсмена: "; cin >> xy[0][i] >> xy[1][i]>> xy[2][i]; } //------------------------------------------------------ // Поиск максимального значения среди результатов for(int j(1); j<5; j++) { for(int i(1); i<3; i++) { if (max < xy[i][j]) max=xy[i][j]; } } //------------------------------------------------------- //Выводим на экран максимальные значения и данные спортсменов кто их достиг for(int j(0); j<5; j++) { for(int i(0); i<3; i++) { if (xy[i][j]==max) cout << "Лучший результат "<< max << " у " << j+1 << "-го спортсмена с "<< i+1 <<" попытки."<< endl; } } //---------------------------------------------------------------- _getch(); return 0; }