1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 39
1

Сортировка методом "Пузырек"

26.04.2014, 21:43. Показов 1402. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, у меня вот такая проблемка, в файл input вводятся любые числа, и программа сортирует их и закидывает в файл output, так вот файл output пустой, и я не знаю где что нужно исправить((

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <ctype.h>// toupper
#include <stdlib.h>
#include <locale.h>
 
#define N 255
 
FILE *fin,*fout;
 
int main()
{
 
    int i,j;
    int a[N];
    fin=fopen("input.txt","r");
    fout=fopen("output.txt","w");
 
 
{
        for(i = 0 ; i < N; i++)
           {
               scanf("%d", &a[i]);
           }
           for(i = 0 ; i < N ; i++)
               {
              // сравниваем два соседних элемента.
              for(j = 0 ; j < N - i - 1 ; j++) {
                  if(a[j] > a[j+1]) {
                     // если они идут в неправильном порядке, то
                     //  меняем их местами.
                     int tmp = a[j]; a[j] = a[j+1] ; a[j+1] = tmp;
                  }
               }
           }
       }
{
    fprintf(fout,"%d",a[N]);
}
 
    getchar();
    getchar();
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2014, 21:43
Ответы с готовыми решениями:

Демонстрационная программа сортировки методом «пузырек»
Демонстрационная программа сортировки методом «пузырек» Размер массива не превышает 40 и задается с...

Сортировка численного массива(пузырек)
Вроде простая программа, но что-то пошло не так: &quot;.exe вызвал срабатывание точки останова.&quot; Что...

Сортировка одномерного массива разными методами: методом пузырька, сортировка выбором, сортировка включением
Составить программу, реализующую сортировки одномерного массива разными методами: методом пузырька,...

Сортировка массива по убыванию методом обмена с флагом перестановки. (Пузырёк)
Используя технологию процедурного программирования реализовать заданный метод сортировки и...

9
11 / 11 / 10
Регистрация: 10.07.2013
Сообщений: 150
26.04.2014, 21:44 2
Крашится чтоли?
файлы закрывать нужно
C++
1
2
fclose(fin);
fclose(fout);
0
1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 39
26.04.2014, 21:47  [ТС] 3
аа это да, я забыла. но ошибку это не исправило, он просто отсортированные числа не записывает в output. файл пустой
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
26.04.2014, 21:50 4
C++
1
2
3
int a[N];
//...
fprintf(fout,"%d",a[N]);
И что Вы пытаетесь таким макаром записать? Да плюс ко всему ищи и выход за пределы массивы

Добавлено через 28 секунд
как-то так:
C++
1
2
for(i = 0 ; i < N; i++)
   fprintf(fout,"%d ",a[i]);
0
11 / 11 / 10
Регистрация: 10.07.2013
Сообщений: 150
26.04.2014, 21:51 5
ты же не считываешь из файла
fscanf() нужно использовать
0
1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 39
26.04.2014, 21:57  [ТС] 6
добавила fscanf и он начал аварийно завершать программу
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
#define N 255
 
FILE *fin,*fout;
 
int main()
{
 
    int i,j;
    int a[N];
    fin=fopen("input.txt","r");
    fout=fopen("output.txt","w");
 
 
{
        for(i = 0 ; i < N; i++)
 
        fscanf("%d", &a[i]);
 
           for(i = 0 ; i < N ; i++)
               {
              // сравниваем два соседних элемента.
              for(j = 0 ; j < N - i - 1 ; j++) {
                  if(a[j] > a[j+1]) {
                     // если они идут в неправильном порядке, то
                     //  меняем их местами.
                     int tmp = a[j]; a[j] = a[j+1] ; a[j+1] = tmp;
                  }
               }
           }
       }
{
        for(i = 0 ; i < N; i++)
        fprintf(fout,"%d ",a[i]);
 
    fclose(fin);
    fclose(fout);
}
 
    getchar();
    getchar();
 
}
0
11 / 11 / 10
Регистрация: 10.07.2013
Сообщений: 150
26.04.2014, 22:00 7
fscanf()не так используется
fscanf(fin,"%d",&a[i]);
0
1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 39
26.04.2014, 22:04  [ТС] 8
все равно не работает(((
0
11 / 11 / 10
Регистрация: 10.07.2013
Сообщений: 150
26.04.2014, 22:15 9
Лучший ответ Сообщение было отмечено Milayi как решение

Решение

создаёте файл input.txt добавляете такие числа в него
5 12 18 17 (например)
оно выводит 5 12 17 18 в файл.
заработало

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
#define N 4
 
FILE *fin,*fout;
 
int main()
{
 
    int i,j;
    int a[N];
    fin=fopen("input.txt","r");
    fout=fopen("output.txt","w");
 
 
{
        for(i = 0 ; i < N; i++)
 
        fscanf( fin,"%d", &a[i]);
 
           for(i = 0 ; i < N ; i++)
               {
              // ?????????? ??? ???????? ????????.
              for(j = 0 ; j < N - i - 1 ; j++) {
                  if(a[j] > a[j+1]) {
                     // ???? ??? ???? ? ???????????? ???????, ??
                     //  ?????? ?? ???????.
                     int tmp = a[j]; a[j] = a[j+1] ; a[j+1] = tmp;
                  }
               }
           }
       }
{
        for(i = 0 ; i < N; i++)
        fprintf(fout,"%d ",a[i]);
 
    fclose(fin);
    fclose(fout);
}
 
    getchar();
    getchar();
 
}
1
1 / 1 / 0
Регистрация: 26.04.2014
Сообщений: 39
27.04.2014, 20:48  [ТС] 10
спасибо большоооооее)) все теперь действительно заработало))
0
27.04.2014, 20:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2014, 20:48
Помогаю со студенческими работами здесь

Сортировка методом "пузырёк"
ребята, помогите бедному студенту... надо создать 2 кнопки, чтобы отсортировать инфу по столбцу...

Пузырёк сортировка в диапозоне
Надо изменить так, чтобы числа от 15 до 50 сортировались по убыванию и записывались в начало...

Сортировка массива из вещественных чисел по возрастанию, используя “пузырек”
2. Создать компьютерную программу, сортирующую массив из вещественных чисел по возрастанию,...

сортировка методом Хоара сортировка вставкой выбором сортировка сортировка методом пузырька « »
Дана прямоугольная матрица. Сформировать из положительных элементов матрицы, расположенных в первой...

Дан массив чисел 4,7,9,2,5 отсортировать по возрастанию методом "Пузырек".
Дан массив чисел 4,7,9,2,5 отсортировать по возрастанию методом &quot;Пузырек&quot;.

Реализовать сортировку большого массива методом "пузырек" (для 2,500,000 и более элементов)
Нужно реализовать сортировку большого массива методом &quot;пузырек&quot; (для 2,500,000 и далее элементов)....

Блок схема.Сортировка «Пузырьком», Сортировка методом «Последовательных перестановок», Сортировка «Вставками»
Помогите, нужны блок схемы Сортировка «Вставками» Program Vstavka; uses dos; Type mass=array ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru