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

Исправить сортировку структуры

12.05.2014, 08:15. Показов 1236. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#pragma hdrstop
#pragma argsused
 
#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
 
using namespace std;
    int const n=3;
struct ORDER {
       char plat[n],pol[n];
       float summa;
};
 int main()
{system("chcp 1251>0");
 ORDER tmp;
 ORDER Spisok[15];
 char nomer_plat[15];
 bool r=false;
 float snyataya_summa=0;
    for (int i=0;i<=n;i++)
     { cout<<"Платильщик - ";
        cin>>Spisok[i].plat;
        cout<<"Получатель - ";
        cin>>Spisok[i].pol;
        cout<<"Перечисляемая сумма - ";
        cin>>Spisok[i].summa;
     }
for (int i=0;i<=n;i++)
        for (int j=0;j<=n;j++)
            {
             if ( i != j )
             if (strcmp(&Spisok[i].plat[0], &Spisok[j].plat[0]))
                {
                  tmp=Spisok[j];
                  Spisok[j]=Spisok[i];
                  Spisok[i]=tmp;
                }
            }
   for (int i=0;i<=n;i++)
   cout<<"Плательщик "<<Spisok[i].plat<<" Получатель "<<Spisok[i].pol<<" Сумма "<<Spisok[i].summa<<"\n";
   cout<<"Введите номер лицевого счета(плательщика)\n";
   cin>>nomer_plat;
   for (int i=0;i<=n;i++)
       if (strcmp(&Spisok[i].plat[0], &nomer_plat[0]) == 0 ) //выдает ошибку
 
          {
             snyataya_summa+=Spisok[i].summa;
             r=true;
          }
   if (r==true)
      cout<<"С расчетного счета "<<nomer_plat<<" снято "<<snyataya_summa<<"\n";
   else
       cout<<"Такого счета нет\n";
    system("PAUSE");
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
for (int i=0;i<=n;i++)
        for (int j=0;j<=n;j++)
            {
             if ( i != j )
             if (strcmp(&Spisok[i].plat[0], &Spisok[j].plat[0]))
                {
                  tmp=Spisok[j];
                  Spisok[j]=Spisok[i];
                  Spisok[i]=tmp;
                }
            }
Помогите пожалуйста, не работает правильно сортировка...выдает такое сообщение
Миниатюры
Исправить сортировку структуры  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.05.2014, 08:15
Ответы с готовыми решениями:

Исправить сортировку
Разработать программу учета посадок на участке в ботаническом саду. Данные хранить в виде массива структур. Результат вывести на экран в...

Исправить сортировку подсчетом
Всем привет! Есть программа сортировки подсчетом #include &lt;fstream&gt; #include &lt;iostream&gt; using namespace std; int a; ...

Как реализовать быструю сортировку для структуры?
Что нужно поправить? #include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;vector&gt; #include&lt;string&gt; #include&lt;iomanip&gt; using namespace...

12
 Аватар для dimabubyakin
161 / 122 / 85
Регистрация: 16.10.2013
Сообщений: 1,738
12.05.2014, 08:40
Лучший ответ Сообщение было отмечено Xaapxyc как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool f;
do 
    {
    f=false;
    for (int i=0;i<n-1;i++)
    if (strcmp(&Spisok[i].plat[0], &Spisok[j].plat[0]))
                {
                  f=true;
                  tmp=Spisok[i];
                  Spisok[i]=Spisok[i+1];
                  Spisok[i+1]=tmp;
                }
    }
    while(f==true);
Добавлено через 26 секунд
Попробуйте вот так)
0
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 54
12.05.2014, 08:44  [ТС]
Цитата Сообщение от dimabubyakin Посмотреть сообщение
Попробуйте вот так)
Спасибо, и можете помочь объяснить пару строк, с 17 по 19 включительно)
А само задание такое, структура ORDER включает (номер плательщика, получателя, и перечисляемая сумма)
там они должны быть отсортированы. просто не понимаю под что отводится
C++
1
2
ORDER Spisok[15];
 char nomer_plat[15];
0
 Аватар для dimabubyakin
161 / 122 / 85
Регистрация: 16.10.2013
Сообщений: 1,738
12.05.2014, 08:51
Xaapxyc, не знаете что для чего в вашем коде?
C++
1
2
3
 cout<<"Плательщик "<<Spisok[i].plat<<" Получатель "<<Spisok[i].pol<<" Сумма "<<Spisok[i].summa<<"\n";
   cout<<"Введите номер лицевого счета(плательщика)\n";
   cin>>nomer_plat;
0
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 54
12.05.2014, 08:52  [ТС]
Цитата Сообщение от dimabubyakin Посмотреть сообщение
Попробуйте вот так)
все равно не хочет, он почему соединяет их вот смотрите на скрине, плательщик 111 получатель 222 он их соединил в одну строчку почему, а точнее прописал получателя два раза.
Миниатюры
Исправить сортировку структуры  
0
 Аватар для dimabubyakin
161 / 122 / 85
Регистрация: 16.10.2013
Сообщений: 1,738
12.05.2014, 08:54
Если у вас все данные числовые, зачем вы используете тип char?

Добавлено через 55 секунд
Напишите задание, ибо из "кода" ничего не понятно
0
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 54
12.05.2014, 08:54  [ТС]
Цитата Сообщение от dimabubyakin Посмотреть сообщение
Если у вас все данные числовые, зачем вы используете тип char?
я делал все по лекциям, нам так наша преподавательница показывала, её под 60 лет..
0
 Аватар для dimabubyakin
161 / 122 / 85
Регистрация: 16.10.2013
Сообщений: 1,738
12.05.2014, 08:56
Xaapxyc, а если бы она сказала записать строку в int вы бы записали
0
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 54
12.05.2014, 08:57  [ТС]
Цитата Сообщение от dimabubyakin Посмотреть сообщение
Напишите задание, ибо из "кода" ничего не понятно
Описать структуру с именем ORDE: Записи должны быть размещены в алфавитном порядке по расчетным счетам плательщиков. Вывод на экран о сумме снятой с расчетного счета плательщика веденного с клавиатуры. Если такого счет нет то выдать такого расчетного счета нет

Добавлено через 56 секунд
Цитата Сообщение от dimabubyakin Посмотреть сообщение
Xaapxyc, а если бы она сказала записать строку в int вы бы записали
значит записать вместо char все в интом?
0
 Аватар для dimabubyakin
161 / 122 / 85
Регистрация: 16.10.2013
Сообщений: 1,738
12.05.2014, 09:00
Xaapxyc, хм.. если расчетный счет я представляю числами,
Цитата Сообщение от Xaapxyc Посмотреть сообщение
Записи должны быть размещены в алфавитном порядке
Добавлено через 1 минуту
Xaapxyc, сделаю ка я по своему
0
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 54
12.05.2014, 09:06  [ТС]
Цитата Сообщение от dimabubyakin Посмотреть сообщение
хм.. если расчетный счет я представляю числами,
это так у неё в задачнике было написано, я так понимаю по убыванию в числовом варианте, а не алфавитном.

Добавлено через 1 минуту
Цитата Сообщение от dimabubyakin Посмотреть сообщение
сделаю ка я по своему
ток не забубенно, а то я не смогу объяснить ей, она придирчивая.

Добавлено через 4 минуты
Цитата Сообщение от dimabubyakin Посмотреть сообщение
Xaapxyc, сделаю ка я по своему
как по своему?
0
 Аватар для dimabubyakin
161 / 122 / 85
Регистрация: 16.10.2013
Сообщений: 1,738
12.05.2014, 09:24
Вот так
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
#include <iostream>
#define n 5
using namespace std;
struct ORDER
{
    int id_plat;
    float summa;
};
int main()
{
    ORDER a[n];
    bool t;
    ORDER tmp;
    int id;
    float sum;
    cout<<"VVedite spisok"<<endl;
    for(int i=0;i<n;i++)
    {
        cout<<"ID    : ";
        cin>>a[i].id_plat;
        cout<<"Summa : ";
        cin>>a[i].summa;
    }
    system("cls");
    do 
        {
            t=false;
            for (int i=0;i<n-1;i++)
            if (a[i].id_plat>a[i+1].id_plat)
                {
                  t=true;
                  tmp=a[i];
                  a[i]=a[i+1];
                  a[i+1]=tmp;
                }
        }
        while(t==true);
    cout<<"Spisok platelschikov :"<<endl;
    for(int i=0;i<n;i++)
    cout<<a[i].id_plat<<"    "<<a[i].summa<<endl;
    cout<<"Vvedite ID :";
    cin>>id;
    cout<<"Vvedite summu :";
    cin>>sum;
    t=false;
    for(int i=0;i<n;i++)
    if(a[i].id_plat==id)
    {
        t=true;
        a[i].summa-=sum;
        cout<<a[i].id_plat<<"    "<<a[i].summa<<endl;
    }
    if(!t)cout<<"Ne nayden"<<endl;
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 54
12.05.2014, 09:30  [ТС]
C++
1
[quote="dimabubyakin;6158990"]Вот так[/quote]
спасибо..ток блин это слишком сложно...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2014, 09:30
Помогаю со студенческими работами здесь

Реализовать сортировку массива объектов пользовательского типа по заданному полю (структуры)
Есть перечень студентов, прибывших в лагерь по форме: ФИО, факультет, номер отряда. Упорядочить перечень по номерам отрядов, внутри отряда...

Реализовать односвязный список и обеспечить его сортировку по одному из полей структуры.
Реализовать односвязный список и обеспечить его сортировку по одному из полей структуры. зарание спс Добавлено через 37 минут 26...

Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом
Здравствуйте. Я не как не могу разобраться.Помогите. У меня есть листинг сортировки вставками: #include &quot;stdafx.h&quot; ...

Структуры. Исправить вывод
Задание: На основе данных входного файла составить инвентарную ведомость склада, включив следующие данные: вид продукции, стоимость, сорт,...

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Установка 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