С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Hammer-On
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 41
1

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

10.11.2012, 19:42. Просмотров 826. Ответов 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;
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]' "



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

"В справочной автовокзала хранится расписание движения автобусов.
Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время
отправления и прибытия. Вывести информацию о рейсах, которыми можно
воспользоваться для прибытия в пункт назначения раньше заданного времени."
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 19:42
Ответы с готовыми решениями:

Разобраться с ошибками в коде
подскажите, ошибки в коде есть подчеркиваются &quot;красным&quot; они, препод говорит,...

Разобраться с ошибками в коде
что я делаю неправильно вот код программы #include &lt;iostream.h&gt; #include...

Разобраться с ошибками
что нужно исправить #include &lt;iostream.h&gt; #include &lt;string.h&gt; #include...

не могу разобраться с ошибками
Приветствую всех форумчан!!! Столкнулся со следующей проблемой: при компиляции...

Разобраться с ошибками в программе
#include &lt;uniostream&gt; ; using namespace std; void main() { char...

8
BumerangSP
4288 / 1410 / 463
Регистрация: 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 запишется то, что ввели.
1
David Sylva
1297 / 959 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
10.11.2012, 19:52 3
Везде одна и та же ошибка, ты же обращаешься к массиву с целочисленными значениями, надо указывать к какому элементу именно обращаешься.Например строка 24 надо так bus[i].d[i]
1
Hammer-On
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 41
10.11.2012, 20:10  [ТС] 4
спасибо, сейчас попробую

Добавлено через 14 минут
http://cs407330.userapi.com/v407330014/3809/CvzU_SonfQw.jpg
хД ошибок больше не выбивает, но выполняет код только до 33 строки
как это исправить?
0
David Sylva
1297 / 959 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
10.11.2012, 20:18 5
Цитата Сообщение от Hammer-On Посмотреть сообщение
хД ошибок больше не выбивает, но выполняет код только до 33 строки
как это исправить?
Подправь свой код и выложи, без ошибок.
1
Hammer-On
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 41
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;
}
вот он
0
David Sylva
1297 / 959 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
10.11.2012, 20:27 7
И зачем ты везде, исправил ошибку? Там где массив из целых чисел ставишь i, там где символьный не делаешь так.
1
Hammer-On
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 41
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;
}
0
David Sylva
1297 / 959 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
10.11.2012, 21:27 9
Потому что, когда ты записываешь строку тебя надо несколько символов, а числа хватает одного.Лучше Массив чисел исправь просто на переменные.
1
10.11.2012, 21:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2012, 21:27

Разобраться с ошибками в программе
#include &lt;stdio.h&gt; using namespace std; int main(void) {...

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

Помощь с ошибками в коде программы "Hello world"
Я новичек, так что кривой немного. В общем хотел поставить себе среду Microsoft...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru