Created
September 13, 2015 20:31
-
-
Save aminbenarieb/763eb622f3e2631fb060 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// module.c | |
// | |
// | |
// Created by Amin Benarieb on 13/09/15. | |
// | |
// | |
#include "module.h" | |
// Печать массива | |
void printArray(int const * const sPtr, int const * const ePtr) | |
{ | |
for(int *ptr = (int *)sPtr; ptr < ePtr; printf("%d ", *ptr++)); | |
} | |
//Обработка файла | |
bool processFile(int **a, char *fileName, int **ePtr) | |
{ | |
int temp; | |
int n = 0; | |
FILE *f = fopen(fileName, "r"); | |
if(!f) | |
{ | |
printf("File with name %s is not found with address: \n", fileName); | |
return false; | |
} | |
//Считывание файла в массив | |
printf("Reading file...\n"); | |
// Первый проход - опредление кол-ва элементов в файле | |
for (n = 0; fscanf(f, "%d", &temp) == 1; n++); | |
if (n == 0) | |
{ | |
printf("File is empty.\n"); | |
return false; | |
} | |
// Выделение памяти для массива | |
*a = (int *)realloc(*a, n * sizeof(int)); | |
// Сброс позиции курсора в файле | |
rewind(f); | |
// Второй проход - считывание файла в массив | |
for (*ePtr = *a; fscanf(f, "%d", *ePtr) == 1; (*ePtr)++); | |
fclose(f); | |
return true; | |
} | |
//Минимум из произведений соседних элементов массива | |
int min(int const * const sPtr, int const * const ePtr, int *error) | |
{ | |
int min = 0; | |
bool firstFlag = false; | |
bool secondFlag = false; | |
for(int *ptr = (int *)sPtr; ptr < (ePtr-1); ptr++) | |
{ | |
int temp = *ptr**(ptr+1); | |
secondFlag = firstFlag; | |
if (min > temp || !firstFlag) | |
{ | |
min = temp; | |
firstFlag = true; | |
} | |
} | |
*error = firstFlag && secondFlag ? 0 : 1; | |
return min; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment