Найти, в какой половине массива находятся его минимальный и максимальный элементы (через указатели) - C (СИ)
Формулировка задачи:
Здравствуйте. Помогите, пожалуйста, исправить ошибку. Дан массив вещественных чисел, состоящий из N элементов (N=10). Найти, в какой его половине находятся минимальный и максимальный элементы.
#include <stdio.h>
#include <conio.h>
#define N 10
int main()
{
int n=N;
float a[N]={1.2,2.2,3.3,4.4,5.5,6.6,7.7,8.8,99.9,10.1}, *p,*pmin,*pmax;
*pmax=a[0];
*pmin=*pmax;
for(p=a;p<&a[N];p++)
{
if(*p>*pmax)
*pmax=*p;
if(*p<*pmin)
*pmin=*p;
}
if(pmax>&a[n/2]) printf("\nmaximum sprava =%1.f",*pmax);
else printf("\nmaximum sleva =%1.f",*pmax);
if(pmin>&a[n/2]) printf("\nminimum sprava =%1.f",*pmin);
else printf("\nminimum sleva =%1.f",*pmin);
getch();
return 0;
}Решение задачи: «Найти, в какой половине массива находятся его минимальный и максимальный элементы (через указатели)»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#define N 10
int main()
{
float a[N]={1.2,2.2,3.3,4.4,5.5,6.6,7.7,8.8,99.9,10.1}, *p,*pmin,*pmax;
pmax=a;
pmin=pmax;
for(p=a;p<a+N;p++)
{
if(*p>*pmax)
pmax=p;
if(*p<*pmin)
pmin=p;
}
if(pmax>a+N/2) printf("\nmaximum sprava =%1.1f",*pmax);
else printf("\nmaximum sleva =%1.1f",*pmax);
if(pmin>a+N/2) printf("\nminimum sprava =%1.1f",*pmin);
else printf("\nminimum sleva =%1.1f",*pmin);
getch();
return 0;
}
Объяснение кода листинга программы
- Объявлен массив a типа float с размером N=10 и инициализирован значениями от 1.2 до 10.1
- В цикле for перебираются все элементы массива a, начиная с первого и заканчивая предпоследним
- Переменные pmax и pmin инициализируются значением первого элемента массива a
- Если текущий элемент массива больше значения переменной pmax, то значение переменной pmax меняется на текущее значение
- Если текущий элемент массива меньше значения переменной pmin, то значение переменной pmin меняется на текущее значение
- Если значение переменной pmax выходит за пределы первой половины массива (от a до a+N/2), то выводится сообщение
maximum spravaи значение переменной pmax - Если значение переменной pmax остается в пределах первой половины массива, то выводится сообщение
minimum spravaи значение переменной pmin - Если значение переменной pmin выходит за пределы первой половины массива (от a до a+N/2), то выводится сообщение
minimum slevaи значение переменной pmin - Если значение переменной pmin остается в пределах первой половины массива, то выводится сообщение
maximum slevaи значение переменной pmax - В конце программы вызывается функция getch() для приостановки выполнения программы до нажатия клавиши
- Возвращается 0, что означает успешное завершение программы