Задача 3. Поиск минимального и максимального элементов массива
Дан вещественный массив: T = {ti}; i= . Поменять местами минимальный и максимальный элементы массива и вывести массив после обмена.
Решение
В этой задаче для осуществления обмена надо знать не только значения минимального и максимального элементов массива, но и их местоположение. Поэтому во время поиска минимального и максимального элементов необходимо фиксировать значения их индексов.
Введем обозначения:
min - минимальный элемент;
imin - индекс минимального элемента;
max - максимальный элемент;
imax - индекс максимального элемента.
Схема алгоритма:
Да |
Вывод S,P |
Конец |
Max=T[i] imax=i |
Нет |
Да |
T[i]>Max |
Нет |
Min=T[i] imin=i |
Min=106 Max=-106 |
i=1,10 |
НАЧАЛО |
T[i]<Min |
Ввод массива Т |
Текст программы:
#include "stdafx.h"
#include<math.h>
int main()
{
float T[10] ; /* описание массива Т */
int i, imin, imax;
float min, max;
printf("Введите массив Т\n");
for( i = 0;i<10;i++)
scanf("%f",&T[i]);
min =+1E6;
max =-1E6;
for( i = 0; i<10; i++)
{
if (T[i]<min)
{
min = T[i];
imin=i; /* сохранение номера текущего min */
}
if( T[i]>max)
{
max = T[i];
imax = i; /* сохранение номера текущего max */
}
}
T[imin]=max;
T[imax]= min;
for( i= 0; i<10; i++)
printf("%6.2f ",T[i]);
printf("\n");
return 0;
}