Найти, в какой половине массива находятся его минимальный и максимальный элементы (через указатели) - 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;
}

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

  1. Объявлен массив a типа float с размером N=10 и инициализирован значениями от 1.2 до 10.1
  2. В цикле for перебираются все элементы массива a, начиная с первого и заканчивая предпоследним
  3. Переменные pmax и pmin инициализируются значением первого элемента массива a
  4. Если текущий элемент массива больше значения переменной pmax, то значение переменной pmax меняется на текущее значение
  5. Если текущий элемент массива меньше значения переменной pmin, то значение переменной pmin меняется на текущее значение
  6. Если значение переменной pmax выходит за пределы первой половины массива (от a до a+N/2), то выводится сообщение maximum sprava и значение переменной pmax
  7. Если значение переменной pmax остается в пределах первой половины массива, то выводится сообщение minimum sprava и значение переменной pmin
  8. Если значение переменной pmin выходит за пределы первой половины массива (от a до a+N/2), то выводится сообщение minimum sleva и значение переменной pmin
  9. Если значение переменной pmin остается в пределах первой половины массива, то выводится сообщение maximum sleva и значение переменной pmax
  10. В конце программы вызывается функция getch() для приостановки выполнения программы до нажатия клавиши
  11. Возвращается 0, что означает успешное завершение программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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