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

Структуры. Ошибка в коде задачи.

21.11.2012, 17:40. Показов 1414. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сделал лабораторную не пойму в чем ошибка.
Задание такое:
Номер телефона, например (212) 767-8900, можно условно разделить на три части: код города (212), номер телефонной станции (767) и номер абонента (8900). Написать программу с использованием структуры, поз¬воляющую раздельно хранить эти три части телефонного номера. Назвать структуру phone. Создайте две структурные переменные типа phone. Инициализацию одной из них произвести самостоятельно, а значения для другой запросите с клавиатуры. Затем вывести содержимое обеих переменных на экран. Результат работы программы должен выглядеть приблизитель¬но так:

Введите код города, номер станции и номер абонента: 415 555 1212
Мой номер (212) 767-8900
Ваш номер (415) 555-1212

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
#include "stdafx.h"
#include "iostream"
using namespace std;
 
struct phone{
    int kod  ;
    int nom ;
    int mom_abon ;
};
 
struct new_phone{
    int kod1;
    int nom1;
    int mom_abon1;
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "rus" );
    phone object;
    new_phone new_object;
    cout << "Введите код города, номер станции и номер абонента: ";
    int mas_all[11];
    cin >> mas_all[11];
 
    int mas_a[2];
    mas_a[0] = mas_all[0];
    mas_a[1] = mas_all[1];
    mas_a[2] = mas_all[2];
    new_object.kod1 = mas_a[2];
 
    int mas_b[2];
    mas_b[0] = mas_all[4];
    mas_b[1] = mas_all[5];
    mas_b[2] = mas_all[6];
    new_object.nom1 = mas_b[2];
 
    int mas_c[3];
    mas_c[0] = mas_all[8];
    mas_c[1] = mas_all[9];
    mas_c[2] = mas_all[10];
    mas_c[3] = mas_all[11];
    new_object.mom_abon1= mas_b[2];
 
    object.kod = 123;
    object.nom = 456;
    object.mom_abon = 7890;
    cout << "Мой номер телефона : " << object.kod << " " << object.nom << " " << object.mom_abon << endl;
    
    cout << "Ваш номер : " << new_object.kod1 << " " << new_object.nom1 << " " << new_object.mom_abon1 << endl;
 
    system("pause");
    return 0;
}
Результат выходит такой:

Введите код города, номер страницы и номер абонента: 323 456 7090
Мой номер телефона : 123 456 7890
Ваш номер : -858993460 -858993460 -858993460
Буду рад любо помощи)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2012, 17:40
Ответы с готовыми решениями:

Задачи на структуры
Помогите сделать пару заданий. Вариант не важно Вариант 1. 1.Описать структуру с именем STUDENT, содержащую следующие поля: •...

Исправить ошибки в коде на структуры данных
Преподаватель в качестве примера структуры данных прикрепил этот код, а в вижуал студио вылезают ошибки, которые я сам исправить не могу ...

Задачи на матрицы и структуры
4. Дана матрица размера M  N. Вывести ее элементы, расположенные в столбцах с нечетными номерами (1, 3, …). Вывод элементов производить по...

9
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.11.2012, 17:46
Размер массивов не соответствует индексам. Если:
C++
1
int mas_a[2];
, то это массив на два элемента (mas_a[0], mas_a[1]), int mas_b[2] - массив на два элемента(mas_b[0], mas_b[1]), int mas_c[3] - массив на три элемента(mas_c[0], mas_c[1], mas_c[2]).
1
 Аватар для StanislavUA
44 / 44 / 14
Регистрация: 27.04.2011
Сообщений: 163
21.11.2012, 17:50
Цитата Сообщение от Sniti01 Посмотреть сообщение
int mas_all[11];
cin >> mas_all[11];
вы создаете массив из 11-ти элементов, затем вводите значение 11-го элемента, остальные 10 остаются пустыми
Цитата Сообщение от Sniti01 Посмотреть сообщение
int mas_a[2];
mas_a[0] = mas_all[0];
mas_a[1] = mas_all[1];
mas_a[2] = mas_all[2];
new_object.kod1 = mas_a[2];
int mas_b[2];
mas_b[0] = mas_all[4];
mas_b[1] = mas_all[5];
mas_b[2] = mas_all[6];
new_object.nom1 = mas_b[2];
int mas_c[3];
mas_c[0] = mas_all[8];
mas_c[1] = mas_all[9];
mas_c[2] = mas_all[10];
mas_c[3] = mas_all[11];
new_object.mom_abon1= mas_b[2];
тут вы создаете новые массивы и присваиваете им пустые значения, эти же значения вы присваиваете элементам структуры

Цитата Сообщение от Sniti01 Посмотреть сообщение
int mas_c[3];
mas_c[0] = mas_all[8];
mas_c[1] = mas_all[9];
mas_c[2] = mas_all[10];
mas_c[3] = mas_all[11];
new_object.mom_abon1= mas_b[2];
в этой части вы видимо хотели присвоить элементу структуры массив mass_c, а присвоили mass_b
1
0 / 0 / 1
Регистрация: 25.10.2012
Сообщений: 50
21.11.2012, 17:53  [ТС]
Все равно ошибка такая как и была.
int mas_a[2], по моему имеет три элемента mas_a[0], mas_a[1], mas_a[2]
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.11.2012, 18:27
Цитата Сообщение от Sniti01 Посмотреть сообщение
Все равно ошибка такая как и была.
int mas_a[2], по моему имеет три элемента mas_a[0], mas_a[1], mas_a[2]
Могу только повторить то, что писал во втором посте, а там как знаете. При объявлении массива, в квадратных скобках, указывается количество элементов массива.
1
0 / 0 / 1
Регистрация: 25.10.2012
Сообщений: 50
21.11.2012, 21:50  [ТС]
Понял, невнимательно прочитал. Спасибо вам за помощь! сейчас буду исправлять.

Добавлено через 23 минуты
А если сделать по другому, (так вроде по проще):
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
#include "stdafx.h"
#include "iostream"
using namespace std;
 
struct phone{
    int kod  ;
    int nom ;
    int mom_abon ;
};
 
struct new_phone{
    int kod1;
    int nom1;
    int mom_abon1;
};
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "rus" );
    phone object;
    new_phone new_object;
    cout << "Введите код города, номер станции и номер абонента: ";
    cin >> new_object.kod1;
    cin >> new_object.nom1;
    cin >> new_object.mom_abon1;
 
    object.kod = 123;
    object.nom = 456;
    object.mom_abon = 7890;
    cout << "Мой номер телефона : " << object.kod << " " << object.nom << " " << object.mom_abon << endl;
    
    cout << "Ваш номер : " << new_object.kod1 << " " << new_object.nom1 << " " << new_object.mom_abon1 << endl;
 
    system("pause");
    return 0;
}
только по заданию мне надо что бы номер вводился в одну строчку и через пробел.Подскажите можно ли так сделать в этой программе, а ели можно то как?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.11.2012, 23:35
Цитата Сообщение от Sniti01 Посмотреть сообщение
только по заданию мне надо что бы номер вводился в одну строчку и через пробел.Подскажите можно ли так сделать в этой программе, а ели можно то как?
У вас так и будет работать.
1
0 / 0 / 1
Регистрация: 25.10.2012
Сообщений: 50
22.11.2012, 00:44  [ТС]
у меня работает вот как:
Введите код города, номер станции и номер абонента: 415
555
1212
.......
А надо:
Введите код города, номер станции и номер абонента: 415 555 1212
.......
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.11.2012, 02:12
Цитата Сообщение от Sniti01 Посмотреть сообщение
Введите код города, номер станции и номер абонента: 415 555 1212
Вот так наберите (одной строкой) и в конце Enter, и всё будет как нужно.
1
0 / 0 / 1
Регистрация: 25.10.2012
Сообщений: 50
22.11.2012, 16:57  [ТС]
Спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.11.2012, 16:57
Помогаю со студенческими работами здесь

Ошибки в коде. Считывание/запись структуры в файл
Здравствуйте. Может кто поможет с кодом. Пытаюсь написать программу, которая бы писала в файл и считывала бы из нее структуру. Вот код : ...

Вывод структуры в файл. Исправить ошибки в коде
Здравствуйте. Пишу программу с структурой и вводом в файл. Выдает ошибку что не определены переменные: v, s, t, at. Помогите, пожалуйста,...

Оформление списка в виде структуры, исправить ошибку в коде
Здравствуйте, есть проблема, нужно оформить список в виде структуры, но вот есть ошибка в строке, не могу понять в чем, но при компиляции...

Найти причины и способы исправления ошибок в коде (структуры)
Тоже задание по структуре. над ошибкой уже 2 час сижу не могу понять и разобраться в ней принтскрин с кодом и ошибкой прилагается. ...

проблема в коде задачи на циклы
#include &lt;iostream&gt; using namespace std; int main() { int n; double sum=0; setlocale(0,&quot;Russian&quot;); cout...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru