Найти, в какой половине массива находятся его минимальный и максимальный элементы (через указатели) - 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, что означает успешное завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д