Сортировка пузырьком
Все вопросы можно задавать по адресу 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 должен быть создан в той же папке, что и файлы программы. В нем должны быть записаны числа
последовательности через пробел, или по одному в строке.