Будет ли ошибкой return в ф-и MinMax? - C (СИ)
Формулировка задачи:
Здравствуйте!
Изучаю язык Си, есть решённая задачка.
1. Будет ли ошибкой return в ф-и MinMax?
2. Надо ли ставить двойку в объявлении MinMax'a и зачем?
#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)); }
Решение задачи: «Будет ли ошибкой 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; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream.h и stdlib.h
- Объявление константы размера массива SIZE
- Создание функции MinMax, которая принимает на вход указатель на первый элемент массива, длину массива, указатель на переменную min и указатель на переменную max.
- Внутри функции инициализация переменных _min и _max значением первого элемента массива d[0]
- Затем происходит проход по всем элементам массива, начиная с 0 и до len-1.
- Если текущий элемент d[i] больше значения переменной _max, то значение переменной _max обновляется.
- Если текущий элемент d[i] меньше значения переменной _min, то значение переменной _min обновляется.
- После прохода по всем элементам массива, значения переменных _min и _max содержат минимальное и максимальное значение массива соответственно.
- Значения переменных min и max в функции main устанавливаются равными нулю.
- Создается массив data типа int, размерностью SIZE, заполненный некоторыми значениями.
- Функция MinMax вызывается в функции main с аргументами data, SIZE, &min, &max.
- Выводится сообщение с значениями переменных min и max.
- Вызов system(
PAUSE
) служит для приостановки выполнения программы до нажатия клавиши. - Возврат значения 0 из функции main означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д