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

сортировка структуры методом "пузырька"

09.01.2017, 18:40. Показов 2651. Ответов 1
Метки нет (Все метки)

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

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct Sotr // Сотрудник
{
    char fio[64]; // ФИО
    char date[16]; // Дата рождения
    char dolg[32]; // Должность
    double okl; // Оклад
};
 
struct List // Список
{
    Sotr sotr; // Инф поле
    List *pNext; // Указательна следующий элемент
};
 
// Функция добавления элемента в начало списка
void addFirst(List *& pF, // Указатель на начало списка
    List* p) // Указатель на добавляемый элемент
{
    p->pNext = pF;
    pF = p;
}
 
int main(int argc, char* argv[])
{
    List *pF = 0; // Список пуст
    List *p;
    // Ввод списка
    char Ch; // Переменная для ввода условия продолжения ввода
    do
    {
        p = (List *)malloc(sizeof(List)); // Выделяем память под элемент
        printf("\nFIO: ");
        scanf_s("%s", p->sotr.fio, 63);
        scanf_s("%*[^\n]");
        printf("Date: ");
        scanf_s("%s", p->sotr.date, 15);
        scanf_s("%*[^\n]");
        printf("Dolg: ");
        scanf_s("%s", p->sotr.dolg, 31);
        scanf_s("%*[^\n]");
        printf("Okl=");
        scanf_s("%lf", &p->sotr.okl);
        addFirst(pF, p); // Добавляем элемент в начало списка
        printf("For continue press Y or y else any key! ");
        Ch = _getche(); // Чтение кода клавиши с печатью символа
    } while (Ch == 'Y' || Ch == 'y');
    // Вывод спика
    for (List *pi = pF; pi; pi = pi->pNext) // Просмотр списка
        printf("\n%s %s %s oklad=%.2f", pi->sotr.fio, pi->sotr.date,
            pi->sotr.dolg, pi->sotr.okl);
    
    // Сортировка списка
    for (List *pi = pF; pi; pi = pi->pNext)
    {
        // Ищем минимальный элемент в списке
        double min = pi->sotr.okl;
        List *pmin ;
        
        for (List *pj = pi->pNext; pj; pj = pj->pNext)
            if (pj->sotr.okl>min)
            {
                min = pj->sotr.okl;
                pmin = pj;
                pj = pi;
                pi = pmin;
            }
    }
 
    // Печать списка после сортировки
    printf("\nSrting:");
    for (List *pi = pF; pi; pi = pi->pNext) // Просмотр списка
        printf("\n%s %s %s oklad=%.2f", pi->sotr.fio, pi->sotr.date,
            pi->sotr.dolg, pi->sotr.okl);
    printf("\nFor exit press any key ");
    system("pause"); // Останавливаем программу, ждем нажатия любой клавиши
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2017, 18:40
Ответы с готовыми решениями:

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

Сортировка массивы методом пузырька и методом выбора
Здравствуйте, сделал функции для сортировки методов пузырька и методом выбора, но не знаю как их...

Сортировка методом пузырька
пытаюсь отсортировать массив из 10000 элементов по возрастанию методом пузырька,числа рандомно...

Сортировка методом пузырька
Нужно отсортировать массив методом пузырька. Суть проблемы. Написал код, работает. Но в некоторых...

Сортировка методом пузырька
В чём проблема ? Почему оно криво сортирует ? // lab1.cpp: определяет точку входа для консольного...

1
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
10.01.2017, 19:59 2
Цитата Сообщение от kolobok3711 Посмотреть сообщение
не работает сортировка
Действительно, алгоритм сортировки выглядит немного подозрительно (для пузырька). Я бы на твоём месте сначала отладил алгоритм сортировки для обычного массива, а потом перевёл его на список. Если возникнут проблемы, можно посмотреть как он реализован в той же википедии.
0
10.01.2017, 19:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2017, 19:59
Помогаю со студенческими работами здесь

Сортировка методом пузырька
Здравствуйте, есть такой код. По возрастанию сортирует нормально (наверное), а вот по убыванию нет....

Сортировка методом Пузырька
Сортировка методом Пузырька!!! Эта программа мне нужна на курсовую - помогите сделать! Если можно...

Сортировка методом пузырька
Есть матрица которую нужно отсортировать по убыванию, помогите с шаблоном пожалуйста

сортировка методом пузырька
Дано последовательных целых чисел которую необходимо обсортировать методом пузырька. Нельзя...

Сортировка методом пузырька
Помогите пожалуйста исправить ошибки. Сортировка пузырьком многомерного массива. #include...


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

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

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