Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
20.06.2014
Размер:
61.44 Кб
Скачать

Текст программы:

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

main ()

{

int *x,i,a,n=0,k=0,j,tmp;

char s[100],b[100];

FILE *in;

FILE *out;

printf ("Enter a name of an entrance file\n");

scanf ("%s",s);

in=fopen (s,"r+t");

for (;;)

{

a=fscanf (in,"%d\n",&n);

if (a>0)

{

k++;

}

else

{

break;

}

}

printf ("Kolichestvo elementov %d\n",k);

getch ();

x=(int*)malloc(sizeof(int)*k);

fseek(in,0,SEEK_SET);

for(i=0;i<k;i++)

{

fscanf (in,"%d\n",&x[i]);

printf ("x[%d]=%d\n",i,x[i]);

}//for

for (j=k;j>0;j--)

{

for(i=0;i<k;i++)

{

if (x[i]>x[i+1])

{

tmp=x[i];

x[i]=x[i+1];

x[i+1]=tmp;

}

else break;

}

}

getch ();

printf ("Enter name file:\n");

scanf ("%s",b);

out=fopen (b,"w+t");

printf ("Otsortirovanye chisla:\n");

for(i=0;i<k;i++)

{

fprintf (out,"%d",x[i]);

printf ("%d\n",x[i]);

}

fclose (in);

fclose (out);

free (x);

getch();

}

Алгоритм:

Метод обмена.

Упорядоченная последовательность создается на том же участке памяти, что и исходная последовательность записей. Сортировка проводится путем сравнения соседних элементов, причем такие сравнения проводят N раз.

Дано: исходный неупорядоченный массив x[i],i=1..N;

tmp- промежуточная переменная.

Итог: массив x[i] упорядочен так, что значение элементов возрастают от 1-го к N-му элементу.

Написать программу, осуществляющую сортировку переменных из входного файла и записывающую результат сортировки в входной файл. Имена входного и выходного файла вводиться пользователем. На экране пользователю должны отображаться исходная и отсортированная последовательность. Формат файлов – текстовый. Количество записей неограниченно.

Метод обмена.

Целых чисел.