Определите и выведите на экран лучший и худший результаты с номерами спортсменов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Прошу помочь решить задачу. "Результаты соревнований по прыжкам в воду и порядковый номер участников хранятся в массиве. Нечетный элемент массива определяет номер участника, четный — результат. Определите и выведите на экран лучший и худший результаты с номерами спортсменов."

Решение задачи: «Определите и выведите на экран лучший и худший результаты с номерами спортсменов»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
//#define N 10
 
void input_array(int *A, int A_size);
void comparer(int *A, int A_size);
void print_best_result(int *A, int A_size);
void print_worst_result(int *A, int A_size);
//void print_array (int *A, int A_size);
 
int N;
 
int main ()
{
 
    printf("Enter number of participants: ");
    scanf("%d", &N);
    printf("\n");
 
 
 
    int A[N];
    printf("Enter array (%d numbers):\n", N);
    input_array(A, N);
    comparer(A, N);
    //print_array(A, N);
    print_best_result(A, N);
    print_worst_result(A, N);
 
 
 
    return 0;
}
 
void input_array (int *A, int A_size)
{
    for(int i=0; i<A_size; i++)
    {
        scanf("%d", A+i);
    }
}
 
void comparer (int *A, int A_size)
{
    for(int k=0; k<A_size-1; k++)
        for(int i=0; i<A_size-1; i++, i++)
        if (A[i+1]> A[i+3])
        {
 
            int tmp=A[i+1];
            A[i+1]=A[i+3];
            A[i+3]=tmp;
 
 
            int second_tmp=A[i];
            A[i]=A[i+2];
            A[i+2]=second_tmp;
        }
}
 
void print_best_result(int *A, int A_size)
{
    printf("\n");
    printf("Best result is: ");
    printf("%d - %d", A[N-2], A[N-1]);
    printf("\n");
}
 
void print_worst_result(int *A, int A_size)
{
    printf("\n");
    printf("Worst result is: ");
    printf("%d - %d", A[0], A[1]);
    printf("\n");
}
 
/*
void print_array(int *A, int A_size)
{
    for(int i=0; i<A_size; i++)
    {
        printf("%4d", A[i]);
        //printf("\n");
    }
}
*/

Объяснение кода листинга программы

В этом коде определен набор функций для работы с массивом целых чисел в языке C.

  1. main() - функция, в которой происходит ввод количества участников (N), затем ввод массива чисел (A) и сортировка массива по возрастанию с помощью функции comparer(). Затем выводятся на экран лучший и худший результаты с номерами спортсменов.
  2. input_array() - функция для ввода массива чисел (A) с помощью функции scanf().
  3. comparer() - функция для сортировки массива чисел (A) по возрастанию.
  4. print_best_result() - функция для вывода на экран лучшего результата с номерами спортсменов.
  5. print_worst_result() - функция для вывода на экран худшего результата с номерами спортсменов.
  6. print_array() - функция для вывода на экран всего массива чисел (A). Код начинается с определения переменной N для хранения количества участников. Затем идет ввод этого количества с помощью scanf() и выводится на экран. Далее определяется массив A типа int размером N для хранения чисел. После этого идет ввод массива с помощью функции input_array(). Затем вызывается функция comparer(), которая сортирует массив по возрастанию. После сортировки вызываются функции print_best_result() и print_worst_result(), которые выводят на экран лучший и худший результаты соответственно. В конце кода есть функция print_array(), которая выводит на экран весь массив чисел, но в данном случае она не вызывается.

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы