Сортировка пузырьком

Все вопросы можно задавать по адресу staroverovvl@yandex.ru
В качестве программы, работающей с последовательностью, приведем пример программы, находящей минимум последовательности.
Сдаваемая программа должна состоять, как минимум, их трех файлов:
- С-файла с функцией, собственно решающей задачу,
- С-файла с функцией main, вызывающей функцию, решающую задачу,
- include-файла с описанием функций, созданных в программе. Созданный include-файл должен быть включен во все C-файлы программы.

Далее содержится пример файлов программы, решающей поставленную задачу.

include-файл с именем fun.h:
#define IN
#define OUT
int FindMin(IN const char *sf, OUT int *res);

Файл с функцией нахождения минимума FindMin . Пусть файл имеет имя fun.c:
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include "fun.h"


int FindMin(IN const char *sf, OUT int *res)
{int x,err=0;
 FILE *f;
 f=fopen(sf,"r");
 if(f!=NULL)
 {
  if(fscanf(f,"%d",res)!=1)
   err=-1;//если файл пуст, то найти минимум нельзя, но файл надо закрыть
  else
  {
   while(fscanf(f,"%d",&x)==1)
    if(x<*res)
     *res=x;
  }
  fclose(f);//если файл открылся, то его надо закрыть, даже если он пуст
 }
 else
  err=-1;
 return err;
}



Файл с функцией main с именем main.c:
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include "fun.h"

int main(void)
{
 int err=0,res;
 err=FindMin(IN "data.txt",OUT &res);
 if(err!=0)
  printf("Error!!!\n");
 else
  printf("Min=%d\n",res);
return err;//правилом хорошего тона является наличие только одного оператора return в функции
}

Файл data.txt должен быть создан в той же папке, что и файлы программы. В нем должны быть записаны числа последовательности через пробел, или по одному в строке.