Определите и выведите на экран лучший и худший результаты с номерами спортсменов - 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.
main()- функция, в которой происходит ввод количества участников (N), затем ввод массива чисел (A) и сортировка массива по возрастанию с помощью функцииcomparer(). Затем выводятся на экран лучший и худший результаты с номерами спортсменов.input_array()- функция для ввода массива чисел (A) с помощью функцииscanf().comparer()- функция для сортировки массива чисел (A) по возрастанию.print_best_result()- функция для вывода на экран лучшего результата с номерами спортсменов.print_worst_result()- функция для вывода на экран худшего результата с номерами спортсменов.print_array()- функция для вывода на экран всего массива чисел (A). Код начинается с определения переменнойNдля хранения количества участников. Затем идет ввод этого количества с помощьюscanf()и выводится на экран. Далее определяется массивAтипаintразмеромNдля хранения чисел. После этого идет ввод массива с помощью функцииinput_array(). Затем вызывается функцияcomparer(), которая сортирует массив по возрастанию. После сортировки вызываются функцииprint_best_result()иprint_worst_result(), которые выводят на экран лучший и худший результаты соответственно. В конце кода есть функцияprint_array(), которая выводит на экран весь массив чисел, но в данном случае она не вызывается.