Форум программистов, компьютерный форум CyberForum.ru

Массив структур. Ошибка - C++

Восстановить пароль Регистрация
 
Тангенс
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 121
24.12.2013, 12:58     Массив структур. Ошибка #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
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <cstring>
#include <conio.h>
 
using namespace std;
 
int N = 0;
string freq;
 
struct Towar{
    char name[20];
    char country[20];
    int year;
};
 
Towar *t = new Towar;
 
void zapol_tow(){
    char a;
    int i=0;
    while(true){
        cout<<"Добавит товар?(y/n)";
        cin>>a;
 
        if(a == 'n'){
            system("cls");
            return;
        }
        
        t[i];
 
        cout<<"Имя товара: ";
        cin>>t[i].name;
 
        cout<<"Страна производитель: ";
        cin>>t[i].country;
 
        cout<<"Год поставки: ";
        cin>>t[i].year;
        
        N++;
        i++;
 
        system("cls");
    }
}
 
void filter(){
 
    int n_cur=0;
    
    for(int i=0;i<N-1;i++){
        int cur=0;
        for(int k=0;k<N-1;k++){
 
            if(!strcmp(t[i].country,t[k].country)){
                    cur++;
            }
        }
        if(cur>n_cur){
            n_cur = cur;
            freq = t[i].country;
        }
    }
}
 
void res(){
    for(int i=0;i<N-1;i++){
        if(!strcmp(t[i].country,freq.c_str())){
                    
            if(t[i].year >= 2011 && t[i].year <= 2013){
                cout<<"Наименование тов. : "<<t[i].name<<'\n';
                cout<<"Страна: "<<t[i].country<<'\n';
                cout<<"Год поставки: "<<t[i].year<<'\n\n';
            }
        }
    }
}
 
int main(){
    setlocale(LC_ALL,"Russian");
    
    zapol_tow();
    filter();
    res();
 
    delete []t;
    _getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
24.12.2013, 13:10     Массив структур. Ошибка #2
Цитата Сообщение от Тангенс Посмотреть сообщение
delete []t;
вы создаёте указатель, а пытаетесь удалить указатель на массив, мб в этом дело, не компилил - просто в глаза бросилось сразу
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
24.12.2013, 13:25     Массив структур. Ошибка #3
какое то не понятное условие задания у вас, что дано непонятно.
И структуры обычно в майн функции объявляются.
В вашем случае если вы массив структур хотите то правильнее было бы так объявить
C++
1
2
3
4
int main(){
    setlocale(LC_ALL,"Russian");
Towar* t = new Towar[заранее известный размер];
//далее продолжение вашей майн функции
Тангенс
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 121
24.12.2013, 14:56  [ТС]     Массив структур. Ошибка #4
Цитата Сообщение от dzrkot Посмотреть сообщение
вы создаёте указатель, а пытаетесь удалить указатель на массив, мб в этом дело, не компилил - просто в глаза бросилось сразу
Оно и без delete []t не работает

Добавлено через 2 минуты
Цитата Сообщение от jurok_85 Посмотреть сообщение
какое то не понятное условие задания у вас, что дано непонятно.
И структуры обычно в майн функции объявляются.
В вашем случае если вы массив структур хотите то правильнее было бы так объявить
C++
1
2
3
4
int main(){
    setlocale(LC_ALL,"Russian");
Towar* t = new Towar[заранее известный размер];
//далее продолжение вашей майн функции
Задание: наиболее распространенную страну поставщика за 2011-2013 годы; через структуры

Оно и с определенным размером выдает ошибку
Обновленный код с выше указанными замечаниями:

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
#include <iostream>
#include <cstring>
#include <conio.h>
 
using namespace std;
 
int N = 0;
string freq;
 
struct Towar{
    char name[20];
    char country[20];
    int year;
};
 
Towar* t = new Towar[0];
 
void zapol_tow(){
    char a;
    int i=0;
    while(true){
        cout<<"Добавит товар?(y/n)";
        cin>>a;
 
        if(a == 'n'){
            system("cls");
            return;
        }
        
        t[i];
 
        cout<<"Имя товара: ";
        cin>>t[i].name;
 
        cout<<"Страна производитель: ";
        cin>>t[i].country;
 
        cout<<"Год поставки: ";
        cin>>t[i].year;
        
        N++;
        i++;
 
        system("cls");
    }
}
 
void filter(){
 
    int n_cur=0;
    
    for(int i=0;i<N-1;i++){
        int cur=0;
        for(int k=0;k<N-1;k++){
 
            if(!strcmp(t[i].country,t[k].country)){
                    cur++;
            }
        }
        if(cur>n_cur){
            n_cur = cur;
            freq = t[i].country;
        }
    }
}
 
void res(){
    for(int i=0;i<N-1;i++){
        if(!strcmp(t[i].country,freq.c_str())){
                    
            if(t[i].year >= 2011 && t[i].year <= 2013){
                cout<<"Наименование тов. : "<<t[i].name<<'\n';
                cout<<"Страна: "<<t[i].country<<'\n';
                cout<<"Год поставки: "<<t[i].year<<"\n\n";
            }
        }
    }
}
 
int main(){
    setlocale(LC_ALL,"Russian");
 
    zapol_tow();
    filter();
    res();
 
    _getch();
    return 0;
}
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
24.12.2013, 15:43     Массив структур. Ошибка #5
у вас она криво написана очень нечитабельно для меня по крайней мере...
Цитата Сообщение от Тангенс Посмотреть сообщение
Towar* t = new Towar[0];
создаёте массив всего из 1ого элемента...

но тем не менее у меня она компилируется и даже выдаёт результат искомый результат
Тангенс
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 121
24.12.2013, 16:31  [ТС]     Массив структур. Ошибка #6
скиньте верный код пожалуйста
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2013, 16:39     Массив структур. Ошибка
Еще ссылки по теме:

Массив структур C++
Чтение из файла в массив структур (ошибка со string) C++
C++ Ошибка, вектор структур

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

Или воспользуйтесь поиском по форуму:
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
24.12.2013, 16:39     Массив структур. Ошибка #7
так я ваш код и запускаю
Yandex
Объявления
24.12.2013, 16:39     Массив структур. Ошибка
Ответ Создать тему
Опции темы

Текущее время: 09:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru