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

Как разобраться с ошибками в коде - C++

Восстановить пароль Регистрация
 
Hammer-On
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 40
10.11.2012, 19:42     Как разобраться с ошибками в коде #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
#include <iostream.h>
#include <string.h>
int main ()
{
struct strc{
int a[100];//номер
char b[100]; // тип автобуса
char c[100]; // пункт назначения
int  d[100]; // время отправления
int  D[100];
int  e[100];// время прибытия
int  E[100];
}bus[100];
int f,i,j,h,m;
cout << "vvedite kol-vo reisov"<<endl;
cin >> f;
for (i=0; i < f; i++)
{
    cout << "vvedite tip avtobusa"<<endl;
    cin >> bus[i].b;
cout << "vvedite punkt naznacheniya"<<endl;
cin >> bus[i].c;
cout << "vvedite vremya otpravleniya(hours(Enter)minutes)"<<endl;
cin >> bus[i].d;
cin >> bus[i].D;
cout << "vvedite vremya pribitiya(hours(Enter)minutes)"<<endl;
cin >> bus[i].e;
cin >> bus[i].E;
}
cout << "vvedite interesyUshee vas vremya pribitiya(hours(Enter)minutes)"<<endl;
cin >> h;
cin >> m;
for (j=0; j < f; j++)
{ 
    if(h > bus[j].e)
    {       
        if(m > bus[j].E)
        {
            cout << bus[j].a << " " << bus[j].b << " " << bus[j].c << " " << bus[j].d << " " << bus[j].D << " " << bus[j].e << " " << bus[j].E;
        }
    }
}
return 0;
}

При компиляции компилятор выдаёт такое:

" D:\111\111.cpp(24) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'int [100]' (or there is no acceptable conversion)
D:\111\111.cpp(25) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'int [100]' (or there is no acceptable conversion)
D:\111\111.cpp(27) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'int [100]' (or there is no acceptable conversion)
D:\111\111.cpp(28) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'int [100]' (or there is no acceptable conversion)
D:\111\111.cpp(35) : error C2446: '>' : no conversion from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
D:\111\111.cpp(35) : error C2040: '>' : 'int' differs in levels of indirection from 'int [100]'
D:\111\111.cpp(37) : error C2446: '>' : no conversion from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
D:\111\111.cpp(37) : error C2040: '>' : 'int' differs in levels of indirection from 'int [100]' "



если понадобится - это решение вот этой задачи задачи:

"В справочной автовокзала хранится расписание движения автобусов.
Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время
отправления и прибытия. Вывести информацию о рейсах, которыми можно
воспользоваться для прибытия в пункт назначения раньше заданного времени."
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.11.2012, 19:51     Как разобраться с ошибками в коде #2
ошибки из-за того, что в struct объявлены массивы:
C++
1
2
3
...
char c[100];
...
а когда к ним идет обращение:
C++
1
2
3
...
cin >> bus[i].c;
...
Тут и ошибка, потому что с - массив, обращаться нужно к его элементам при вводе.
Нужно что-то вроде:
cin >> bus[i].c[1];
Тогда в массиве структур bus в находящейся i-ой ячейке массив "с" в ячейку 1 запишется то, что ввели.
David Sylva
 Аватар для David Sylva
1283 / 945 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
10.11.2012, 19:52     Как разобраться с ошибками в коде #3
Везде одна и та же ошибка, ты же обращаешься к массиву с целочисленными значениями, надо указывать к какому элементу именно обращаешься.Например строка 24 надо так bus[i].d[i]
Hammer-On
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 40
10.11.2012, 20:10  [ТС]     Как разобраться с ошибками в коде #4
спасибо, сейчас попробую

Добавлено через 14 минут
http://cs407330.userapi.com/v4073300...vzU_SonfQw.jpg
хД ошибок больше не выбивает, но выполняет код только до 33 строки
как это исправить?
David Sylva
 Аватар для David Sylva
1283 / 945 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
10.11.2012, 20:18     Как разобраться с ошибками в коде #5
Цитата Сообщение от Hammer-On Посмотреть сообщение
хД ошибок больше не выбивает, но выполняет код только до 33 строки
как это исправить?
Подправь свой код и выложи, без ошибок.
Hammer-On
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 40
10.11.2012, 20:21  [ТС]     Как разобраться с ошибками в коде #6
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
#include <iostream.h>
#include <string.h>
int main ()
{
struct strc{
int a[100];//номер
char b[100];//тип автобуса
char c[100];//пункт назначения
int  d[100];//время отправления
int  D[100];
int  e[100];//время прибытия
int  E[100];
}bus[100];
int f,i,j,h,m;
cout << "vvedite kol-vo reisov"<<endl;
cin >> f;
for (i=0; i < f; i++)
{
cout << "vvedite tip avtobusa"<<endl;
cin >> bus[i].b[i];
cout << "vvedite punkt naznacheniya"<<endl;
cin >> bus[i].c[i];
cout << "vvedite vremya otpravleniya(hours(Enter)minutes)"<<endl;
cin >> bus[i].d[i];
cin >> bus[i].D[i];
cout << "vvedite vremya pribitiya(hours(Enter)minutes)"<<endl;
cin >> bus[i].e[i];
cin >> bus[i].E[i];
}
cout << "vvedite interesyUshee vas vremya pribitiya(hours(Enter)minutes)"<<endl;
cin >> h;
cin >> m;
for (j=0; j < f; j++)
{ 
    if(h > bus[j].e[j])
    {       
        if(m > bus[j].E[j])
        {
            cout << bus[j].a[j] << " " << bus[j].b[j] << " " << bus[j].c[j] << " " << bus[j].d[j] << " " << bus[j].D[j] << " " << bus[j].e[j] << " " << bus[j].E[j];
        }
    }
}
return 0;
}
вот он
David Sylva
 Аватар для David Sylva
1283 / 945 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
10.11.2012, 20:27     Как разобраться с ошибками в коде #7
И зачем ты везде, исправил ошибку? Там где массив из целых чисел ставишь i, там где символьный не делаешь так.
Hammer-On
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 40
10.11.2012, 20:50  [ТС]     Как разобраться с ошибками в коде #8
хорошо, а почему с символьными массивами не нужно делать так, а с целочисленными нужно?

проблема решилась, спасибо)

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
#include <iostream.h>
#include <string.h>
int main ()
{
struct strc{
int a[100];//номер
char b[100];//тип автобуса
char c[100];//пункт назначения
int  d[100];//время отправления
int  D[100];
int  e[100];//время прибытия
int  E[100];
}bus[100];
int f,i,j,h,m;
cout << "vvedite kol-vo reisov"<<endl;
cin >> f;
for (i=0; i < f; i++)
{
cout << "vvedite tip avtobusa"<<endl;
cin >> bus[i].b;
cout << "vvedite punkt naznacheniya"<<endl;
cin >> bus[i].c;
cout << "vvedite vremya otpravleniya(hours(Enter)minutes)"<<endl;
cin >> bus[i].d[i];
cin >> bus[i].D[i];
cout << "vvedite vremya pribitiya(hours(Enter)minutes)"<<endl;
cin >> bus[i].e[i];
cin >> bus[i].E[i];
}
cout << "vvedite interesyUshee vas vremya pribitiya(hours(Enter)minutes)"<<endl;
cin >> h;
cin >> m;
for (j=0; j < f; j++)
{ 
    if(h > bus[j].e[j])
    {       
        if(m > bus[j].E[j])
        {
            cout << bus[j].a[j] << " " << bus[j].b << " " << bus[j].c << " " << bus[j].d[j] << " " << bus[j].D[j] << " " << bus[j].e[j] << " " << bus[j].E[j];
        }
    }
}
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2012, 21:27     Как разобраться с ошибками в коде
Еще ссылки по теме:

Разобраться в коде C++
C++ Разобраться с ошибками в коде
Разобраться с ошибками в программе C++
Разобраться с ошибками в программе C++
Не могу разобраться в коде C++

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

Или воспользуйтесь поиском по форуму:
David Sylva
 Аватар для David Sylva
1283 / 945 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
10.11.2012, 21:27     Как разобраться с ошибками в коде #9
Потому что, когда ты записываешь строку тебя надо несколько символов, а числа хватает одного.Лучше Массив чисел исправь просто на переменные.
Yandex
Объявления
10.11.2012, 21:27     Как разобраться с ошибками в коде
Ответ Создать тему
Опции темы

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