Результаты соревнований по прыжкам в длину

Уровень сложности:

Результаты соревнований по прыжкам в длину представлены в виде матрицы 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

Следующие статьи помогут вам в решении данной задачи:
Автор: admin
Дата: 12.09.2012
Поделиться:

Комментарии

  1. 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;
    }
  2. 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;
    }
  3. 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;
    }
    
    
    

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.