Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 05.01.2017
Сообщений: 4

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

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

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

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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.01.2017, 18:40
Ответы с готовыми решениями:

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

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

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

1
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
10.01.2017, 19:59
Цитата Сообщение от kolobok3711 Посмотреть сообщение
не работает сортировка
Действительно, алгоритм сортировки выглядит немного подозрительно (для пузырька). Я бы на твоём месте сначала отладил алгоритм сортировки для обычного массива, а потом перевёл его на список. Если возникнут проблемы, можно посмотреть как он реализован в той же википедии.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2017, 19:59
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru