Необходимо ли отображать в блок-схеме определения функций, или же будет достаточно отобразить их вызовы? Я студент и делаю отчет по лабораторной работе, раньше с блок-схемами не работал. Код привел ниже
#include<stdio.h> #include<stdlib.h> // использование функции rand() #include<time.h> // использование функции time()
// Функция, возвращает указатель на объект данных int* dynamicMemoryInt(int k){ return (int*)malloc(sizeof(int)*k); // т.к. malloc() возвращает нетипизированный указатель, } //используем приведение
// Функция выичисления индекса минимального элемента int minArrIndex(int* arr, int arrSize){ int min = arr[0]; int index = 0; for(int i = 0; i < arrSize; i++) if(arr[i] < min){ index = i; min = arr[i]; } return index; }
// Функция печати элементов массива void printArr(int* arr,int arrSize){ for(int i = 0; i < arrSize; i++) printf("%i\n", arr[i]); }
// Функция инициализации массива случайными числами void inizArr(int* arr, int arrSize){ for(int i = 0; i < arrSize;i++) arr[i] = rand(); }
// Функция замены элементов void arrReplaceValues(int* arr, int arrSize) { for ( int i = 0; i < arrSize; i++ ){ if( ((i+1) % 2 == 0) && (arr[i] > 0) && (i > minArrIndex(arr,arrSize)) ) arr[i] = 1; } }
int main() { srand(time(NULL)); int k = rand()%(4)+2; // кол-во элементов массива от 2 до 5 int* arr = dynamicMemoryInt(k); // создание динамического массива inizArr(arr,k); printf("After:\n"); printArr(arr,k); arrReplaceValues(arr,k); printf("Befor:\n"); printArr(arr,k); return 0; }