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

Сравнение 2 массивов

16.09.2020, 12:13. Показов 1109. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.Не могу понять,что здесь за ошибка в сравнении 2 массивов в 52 строке:

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
#include <iostream>
#include <cstring>
#include <Windows.h>
 
using namespace std;
 
struct TRAIN
{
    char Number;
    int Time;
    char Final_Destination;
};
 
 
 
int main()
{
    setlocale( LC_ALL, "Russian");
    
    //Заносим данные в ограниченный массив
    TRAIN trn[8];
    char Numb[5];
    int i;
    
    for(int i=0; i<8; i++)
    {
        cout <<"Ввод номера поезда:"<<endl;
        cin >> trn[i].Number;
        cout <<"Ввод пункта назначения: "<<endl;
        cin >> trn[i].Final_Destination;
        cout <<"Ввод времени отправления: "<<endl;
        cin >> trn[i].Time;
        cout <<"\n";
    }
    
    
    cout << "Сортировка но номерам рейсов";
    
    for(int i=0; i<8; i++)
            
                cout << trn[i].Number <<"\v";
                cout << trn[i].Time <<"\v";
                cout << trn[i].Final_Destination <<"\v";
                cout <<"\n";
            
            
    cout << "Ввести номер рейса:"<<endl;
    cin >> Numb;
    
    for(int i=0; i<8; i++)
    
        if(strcmp(Numb,trn[i].Number) == 0)
        cout << trn[i].Time <<"\n";
        cout << trn[i].Final_Destination <<"\n";
    
    
    system("pause");    
    return 0;
 
}
Сравнение 2 массивов
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2020, 12:13
Ответы с готовыми решениями:

Сравнение массивов: найти максимальное перебором массивов
Добрый вечер такая проблема даны два одномерных массива A, B причем в каждом массиве записанно...

Сравнение массивов
Здраствуйте, как можно сравнить два элемента buffer и asd? Вот код: char* buffer = new char ;...

Сравнение массивов
Добрый день! Не удается сравнить два массива q и с. Алгоритм шифрует по алгоритму CRC и...

Сравнение 2х массивов в С++
Ребята, помогите пожалуйста написать вот такую прогу: Запросить и считать два массива у...

7
Пора на C++?
370 / 264 / 99
Регистрация: 10.04.2020
Сообщений: 1,275
16.09.2020, 12:16 2
Icaab, ну, вы строку с символом сравниваете. Можно привести char к (char*)
0
264 / 183 / 87
Регистрация: 03.05.2020
Сообщений: 790
16.09.2020, 12:17 3
Цитата Сообщение от Icaab Посмотреть сообщение
struct TRAIN { char Number;
где тут указатель?
0
1 / 1 / 0
Регистрация: 28.01.2018
Сообщений: 58
16.09.2020, 12:27  [ТС] 4
Я сделал, как вы сказали, но теперь при выводе,когда я ввожу лишь номер поезда - программа думает и завершается
Сравнение 2 массивов


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
#include <iostream>
#include <cstring>
#include <Windows.h>
 
using namespace std;
 
struct TRAIN
{
    char* Number;
    int Time;
    char Final_Destination;
};
 
 
 
int main()
{
    setlocale( LC_ALL, "Russian");
    
    //Заносим данные в ограниченный массив
    TRAIN trn[8];
    char Numb[5];
    int i;
    cout <<"Ввод данных вручную\n"<<endl;
    
    
    for(int i=0; i<8; i++)
    {
        cout <<"Ввод номера поезда:"<<endl;
        cin >> trn[i].Number;
        cout <<"Ввод пункта назначения: "<<endl;
        cin >> trn[i].Final_Destination;
        cout <<"Ввод времени отправления: "<<endl;
        cin >> trn[i].Time;
        cout <<"\n";
    }
    
    cout << "Сортировка но номерам рейсов";
    
    for(int i=0; i<8; i++)
            
                cout << trn[i].Number <<"\v";
                cout << trn[i].Time <<"\v";
                cout << trn[i].Final_Destination <<"\v";
                cout <<"\n";
            
            
    cout << "Ввести номер рейса:"<<endl;
    cin >> Numb;
    
    for(int i=0; i<8; i++)
    
        if(strcmp(Numb,trn[i].Number) == 0)
        cout << trn[i].Time <<"\n";
        cout << trn[i].Final_Destination <<"\n";
    
    
    system("pause");    
    return 0;
 
}
0
Пора на C++?
370 / 264 / 99
Регистрация: 10.04.2020
Сообщений: 1,275
16.09.2020, 13:26 5
Icaab, в отладчике смотрите. Скорее всего ошибка где-то вылетает. exit code не равен нулю.

Добавлено через 3 минуты
Icaab, скорее всего нарушение прав доступа к памяти. Вы нигде не инициализируете TRAIN.Number. Он по умолчанию в каждом экземпляре структуры будет равен 0 (или мусор, не помню)
0
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
16.09.2020, 14:07 6
Лучший ответ Сообщение было отмечено Icaab как решение

Решение

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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#define _CRT_SECURE_NO_WARNINGS
 
#include <iostream>
 
 
 
struct Train {
 
    char* number_;
    int time_;
    char* destination_;
 
    Train() :
        number_(nullptr), time_(0), destination_(nullptr) { }
 
    Train(const char* number, int time, const char* destination)
        : number_(nullptr), time_(time), destination_(nullptr) { 
    
        setNumber(number);
        setDestination(destination);
 
    }
 
    Train(const Train& other)
        : number_(nullptr), time_(other.time_), destination_(nullptr) {
 
        setNumber(other.number_);
        setDestination(other.destination_);
 
    }
 
    ~Train() {
 
        delete[] number_;
        delete[] destination_;
 
    }
 
    Train& operator=(const Train& other) {
 
        if (this == &other)
            return *this;
 
        setNumber(other.number_);
        setDestination(other.destination_);
        time_ = other.time_;
 
        return *this;
 
    }
 
    void setNumber(const char* number) {
 
        std::size_t size = std::strlen(number) + 1;
        
        delete[] number_;
        number_ = new char[size];
        std::strcpy(number_, number);
 
    }
 
    void setDestination(const char* destination) {
 
        std::size_t size = std::strlen(destination) + 1;
 
        delete[] destination_;
        destination_ = new char[size];
        std::strcpy(destination_, destination);
 
    }
 
    void setTime(int time) {
 
        time_ = time;
 
    }
 
};
 
 
 
int main() {
 
    const std::size_t numTrains = 2;
    Train trains[numTrains];
    char buffer[256];
    int time;
 
    std::cout << "Manually input:\n\n";
 
    for (std::size_t i = 0; i < numTrains; ++i) {
 
        std::cout << "Number of train: ";
        std::cin >> buffer;
        trains[i].setNumber(buffer);
 
        std::cout << "Destination: ";
        std::cin >> buffer;
        trains[i].setDestination(buffer);
 
        std::cout << "Departure time: ";
        std::cin >> time;
        trains[i].setTime(time);
 
        std::cout << '\n';
 
    }
 
    std::cout << "\nSorting by train numbers...";
    for (std::size_t i = 0; i < numTrains - 1; ++i) {
 
        for (std::size_t j = i + 1; j < numTrains; ++j) {
 
            if (std::strcmp(trains[i].number_, trains[j].number_) > 0) {
 
                Train temp = trains[i];
                trains[i] = trains[j];
                trains[j] = temp;
 
            }
 
        }
 
    }
 
    std::cout << "\nResult:\n";
    for (std::size_t i = 0; i < numTrains; ++i) {
 
        std::cout << "Number of train - " << trains[i].number_  
            << "\n\t" << "Destination - " << trains[i].destination_
            << ", time - " << trains[i].time_ << '\n';
 
    }
 
 
    system("pause");
    return 0;
 
}
1
1 / 1 / 0
Регистрация: 28.01.2018
Сообщений: 58
16.09.2020, 14:32  [ТС] 7
Большое вам спасибо!Код конечно не прост для моего понимания(некоторые бы моменты подписать,за что отвечают), но вы проделали прекрасную работу.
0
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
16.09.2020, 15:58 8
Цитата Сообщение от Icaab Посмотреть сообщение
некоторые бы моменты подписать,за что отвечают
Какие некоторые, показывай.
0
16.09.2020, 15:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2020, 15:58
Помогаю со студенческими работами здесь

Сравнение массивов
После заполнения динамического массива числами,в моем случае 1 и 0,компилятор не производит...

Сравнение массивов
нужно сравнить весь массив из 6 элементов ,,кроме последнего,равны ли элементы массива 0 и...

Сравнение массивов
заданы два массива целых чисел с одинаковой размерности. Сравнить их соответствующие элементы и...

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

Сравнение массивов с погрешностью
Нужно сравнить два массива с погрешностью i, т.е. если элементы отличаются не более чем на i - они...

Сравнение двух массивов
Добрый день ! В условии задачи сказано, что есть два массива по 10 элементов, значения которых...


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

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

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