
Реализации различных алгоритмов на Си / Метод обмена (int)
.doc
ЗАДАНИЕ КАФЕДРЫ
Написать программу, осуществляющую сортировку переменных из входного
файла и записывает результат в выходной файл. Имена входного и выходного файлов вводятся пользователем. На экране должны отображаться исходная и сортированная последовательности. Формат файлов текстовой, количество записей в файле неограниченно.
Вариант: 3i
3-метод обмена
i-целые
Алгоритм сортировки
Т
екст
программы
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
int* bubble_sort(int*a,int n)
{
int i,j,f=1;
int tmp;
for(i=0;i<n-1;i++){
for(j=n-1;j>i;j--){
f=0;
if(a[j]<a[j-1]){
tmp=a[j-1];
a[j-1]=a[j];
a[j]=tmp;
f=1;
}
}
if(f==0)break;
}
return a;
}
main()
{
char name1[10],name2[10];
FILE*f;
int*a;
int i,n=0,tmp;
printf("name1: ");
scanf("%s",name1);
printf("name2: ");
scanf("%s",name2);
f=fopen(name1,"rt");
if(f==NULL){
printf("error");
}
else{
while(!feof(f)){
fscanf(f,"%d",&tmp);
n++;
}
printf("\n");
fseek(f,0,SEEK_SET);
a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++){
fscanf(f,"%d",&a[i]);
}
fclose(f);
printf("%s: ",name1);
for(i=0;i<n;i++){
printf("%d ",a[i]);
}
printf("\n");
bubble_sort(a,n);
printf("%s: ",name2);
for(i=0;i<n;i++){
printf("%d ",a[i]);
}
f=fopen(name2,"wt");
for(i=0;i<n;i++){
fprintf(f,"%d ",a[i]);
}
fclose(f);
}
free(a);
getch();
}
Пример
Входной файл
Выходной
файл