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

Найдите ошибку в программе

22.03.2017, 14:43. Показов 1774. Ответов 3
Метки нет (Все метки)

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
82
83
84
85
86
87
88
89
90
91
92
93
#include<iostream>
#include<fstream>
#include<string>
#include<vector>
#include<iomanip>
#include<cmath>
using namespace std;
 
ifstream in("input.txt");
ofstream out("output.txt");
 
struct date {
    int dd, mm, yy;
};
 
struct people {
    string Dol;
    string Surname;
    date DateOfBirth;
    int Salary, Stag;
};
date Str_to_Date(string str) {
    date x;
    string temp = str.substr(0, 2);
    x.dd = atoi(temp.c_str());
    temp = str.substr(3, 2);
    x.mm = atoi(temp.c_str());
    temp = str.substr(6, 4);
    x.yy = atoi(temp.c_str());
    return x;
}
 
vector<people> inFile() {
    vector<people> x;
    people temp;
    while (in.peek() != EOF) {
        in >> temp.Dol;
 
        in >> temp.Surname;
        string tmp;
        in >> tmp;
        temp.DateOfBirth = Str_to_Date(tmp);
        in >> temp.Stag;
        in >> temp.Salary;
        x.push_back(temp);
    }
    return x;
}
void print(people x) {
    out << setw(15) << left << x.Dol;
    out << setw(10) << left << x.Surname;
    if (x.DateOfBirth.dd < 10) out << left << '0' << x.DateOfBirth.dd << '.';
    else out << left << x.DateOfBirth.dd << '.';
    if (x.DateOfBirth.mm < 10) out << '0' << x.DateOfBirth.mm << '.';
    else out << x.DateOfBirth.mm << '.';
    out << left << setw(6) << x.DateOfBirth.yy;
    out << left << setw(4) << x.Stag;
    out << left << setw(10) << x.Salary << endl;
}
 
bool operator >= (people a, people b) {
    if (a.Dol >= b.Dol) return true;
    if (a.Dol == b.Dol && a.Stag >= b.Stag) return true;
    if (a.Dol == b.Dol && a.Stag == b.Stag && a.Salary >= b.Salary) return true;
    return false;
}
void bubbleSort(vector<people>&x)
{
 
 
    for (int i = 0; i < x.size() - 1; ++i)
    {
        for (int j = 0; j < x.size() - 1; ++j)
        {
            if (x[j - 1] >= x[j])
            {
 
                people temp = x[j - 1];
                x[j - 1] = x[j];
                x[j] = temp;
            }
        }
    }
}
 
int main() {
    vector<people> x;
    x = inFile();
    bubbleSort(x);
    for (int i = 0; i < x.size(); i++)
        print(x[i]);
    return 0;
}
Вложения
Тип файла: txt input.txt (730 байт, 3 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2017, 14:43
Ответы с готовыми решениями:

Найдите ошибку(и) в программе
Не работает программа, где я совершил ошибку?? Для справки: программа определяет принадлежность...

Найдите ошибку в программе
Не могу исправить ошибку в функции (171-181 строка) все остальное работает #include &lt;iostream&gt;...

найдите ошибку в программе с функцией (пожалуйста)
Всем привет, я в отчаянии. Немного изучала С++, но во всех онлайн-уроках на начальном этапе даются...

Найдите ошибку в программе складывания в столбиком двух чисел
Неправильное сложение (Время: 1 сек. Память: 16 Мб Сложность: 41%) Володя написал программу,...

3
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
22.03.2017, 14:46 2
Цитата Сообщение от toypypp Посмотреть сообщение
Ошибок толком никаких не выдает,
- такого не может быть. Какая ошибка-то? Нужно это написать в таком формате: № строки, № ошибки, описание ошибки.
0
0 / 0 / 6
Регистрация: 04.10.2016
Сообщений: 110
22.03.2017, 14:52  [ТС] 3
Как то так
Миниатюры
Найдите ошибку в программе  
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
22.03.2017, 16:00 4
Цитата Сообщение от toypypp Посмотреть сообщение
C++
1
if (x[j - 1] >= x[j])
- зачем менять-то если равен, "=" можно убрать.

Добавлено через 5 минут
Вот ошибка: "Expression: vector subscript out of range" - Выражение: векторная подстрока вышла за допустимые пределы. Ищите ошибку где-то в векторах, она где-то там. А стрелочка есть, которая указывает на какую-нибудь строку? И, если да, то на какую строку?

Добавлено через 2 минуты
Цитата Сообщение от toypypp Посмотреть сообщение
C++
1
2
3
void print(people x)
{
* * out << setw(15) << left << x.Dol;
- не понял, что такое left в этой строке?

Добавлено через 49 минут
Еще я хотел посоветовать пройтись дебаггером по строкам и посмотреть что пишется в переменные. Это должно помочь. Заодно и запомните в какой строке возникает ошибка.
0
22.03.2017, 16:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2017, 16:00
Помогаю со студенческими работами здесь

Найти ошибку в программе: в visual studio выдает ошибку
#include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int main() ...

Найдите в программе ошибку, пожайлуста!!
Программа выдает такую ошибку The program ' димон.exe: Native' has exited with code 0 (0x0). ...

Не могу найти ошибку в программе(для просмотра картинок):кнопка НАЗАД не работает(не становится активной) Найдите ошибку.

Найдите ошибку в программе
Program Razlojeni_cisla; uses crt; var n,i,s,j:integer; procedure desc(j,s,k:integer); var...

Найдите ошибку в программе
Пожалуйста найдите ошибку в программе. Закрытие на крестик не работает. Microsoft Visual Studio...

Найдите ошибку в программе
Даны двумерные массивы. a, b,c Найти произведение и сумму элементов не выше главной диагонали....


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

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