Будет ли ошибкой return в ф-и MinMax? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Изучаю язык Си, есть решённая задачка.
#include<stdio.h>
#define SIZE 10
/*void*/int* MinMax(int *d, int len, int *mass/*,2 надо ли тут ставить двойку?*/)
{int i;
 int min, max;
min=max=d[0];
for (i=0; i<len; i++)
    {if (d[i]>max) max=d[i];
     if (d[i]<min) min=d[i];
    }
*mass=min;
*(mass+1)=max;
return(mass); /*?????*/
}
 
void main ()
{int data[SIZE]={32,-432,-34,4804,0,884}, mass[2];
MinMax(data, SIZE, mass/*,2  надо ли тут ставить двойку?*/);
printf("min=%d  max=%d\n", *mass, *(mass+1));
}
1. Будет ли ошибкой return в ф-и MinMax? 2. Надо ли ставить двойку в объявлении MinMax'a и зачем?

Решение задачи: «Будет ли ошибкой return в ф-и MinMax?»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
 
void MinMax(int *d, int len, int *min, int *max)
{
     int _min = *d, _max = *d; /* *d == d[0] */
     for (int i=0; i<len; i++)
     {
         if (d[i] > _max)
             _max = d[i];
         if (d[i] < _min)
             _min = d[i];
     }
     *min = _min;
     *max = _max;
}
 
int main ()
{
    int min = 0, max = 0;
    int data[SIZE] = {32, -432, -34, 4804, 0, 884};
    MinMax(data, SIZE, &min, &max); 
    printf("min=%i  max=%i\n", min, max);
    system("PAUSE");
    return 0;
}

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

  1. Подключение необходимых библиотек: iostream.h и stdlib.h
  2. Объявление константы размера массива SIZE
  3. Создание функции MinMax, которая принимает на вход указатель на первый элемент массива, длину массива, указатель на переменную min и указатель на переменную max.
  4. Внутри функции инициализация переменных _min и _max значением первого элемента массива d[0]
  5. Затем происходит проход по всем элементам массива, начиная с 0 и до len-1.
  6. Если текущий элемент d[i] больше значения переменной _max, то значение переменной _max обновляется.
  7. Если текущий элемент d[i] меньше значения переменной _min, то значение переменной _min обновляется.
  8. После прохода по всем элементам массива, значения переменных _min и _max содержат минимальное и максимальное значение массива соответственно.
  9. Значения переменных min и max в функции main устанавливаются равными нулю.
  10. Создается массив data типа int, размерностью SIZE, заполненный некоторыми значениями.
  11. Функция MinMax вызывается в функции main с аргументами data, SIZE, &min, &max.
  12. Выводится сообщение с значениями переменных min и max.
  13. Вызов system(PAUSE) служит для приостановки выполнения программы до нажатия клавиши.
  14. Возврат значения 0 из функции main означает успешный конец работы программы.

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


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

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

5   голосов , оценка 3.4 из 5