С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/26: Рейтинг темы: голосов - 26, средняя оценка - 4.77
 Аватар для ahamoth
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 111

Динамический массив из элементов структурного типа

16.05.2011, 15:20. Показов 4993. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста выполнить следующее задание:

1.Сформировать динамический массив из элементов структурного типа.
стуктура :

struct date
{
int day;
char*month;
int year;
};

2. найти и вывести на экран даты, содержащие названия летних месяцев
3. удалить строку с заданным номером

Добавлено через 18 часов 10 минут
программа вылетает после запуска, что я не правильно делаю?
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
struct tdate
{
  int day;
  char month[8];
  int year;
  
};
 
 
 
int main(int argc, char *argv[])
{ int n, i;
 setlocale(LC_ALL,"Russian");
 //tdate  a[n];
  tdate * pd=new tdate;
  cout<<"ââåäèòå ÷èñëî çàïèñåé\n";
  cin>>n;
  for ( i=0; i<n; i++) 
  {cout<< "ââåäèòå äåíü\n";
   cin>>pd[i].day;
   cout<< "ââåäèòå ìåñÿö\n";
   cin>>pd[i].month;
   cout<< "ââåäèòå ãîä\n";
   cin>>pd[i].year;}
   
   for (int i=0; i<n; i++)
   {cout<<pd[i].day<<endl;
    cout<<pd[i].month<<endl;
    cout<<pd[i].year<<endl ;  
       }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.05.2011, 15:20
Ответы с готовыми решениями:

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

Сформировать динамический массив из элементов структурного типа
1.Сформировать динамический массив из элементов структурного типа. struct реrson { char*name; char *adres; int age; }; ...

Сформировать динамический массив из элементов структурного типа
struct student { char*name; int kurs; float rating };

17
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
16.05.2011, 15:35
Выделяете память под один tdate, а потом пишете в несколько?
0
 Аватар для ahamoth
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 111
16.05.2011, 16:15  [ТС]
а как правильно нужно сделать?
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
16.05.2011, 16:31
Цитата Сообщение от ahamoth Посмотреть сообщение
а как правильно нужно сделать?
Использовать оператор new[]
1
 Аватар для ahamoth
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 111
16.05.2011, 16:37  [ТС]
ну , так в коде то что исправить? вот в этой строчке данный оператор использкется
tdate * pd=new tdate;
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
16.05.2011, 16:39
Цитата Сообщение от ahamoth Посмотреть сообщение
ну , так в коде то что исправить? вот в этой строчке данный оператор использкется
tdate * pd=new tdate;
new[], а не new.

C++
1
type * var = new type[length];
1
 Аватар для ahamoth
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 111
16.05.2011, 17:08  [ТС]
а как сделать чтобы если если месяц = "октябрь" , то выводить записи содержащие месяц с данным названием ? я делаю так:
C++
1
2
3
4
5
6
 for ( i=0; i<n; i++) 
  if  (pd[i].month ="oct")
  {
  for ( i=0; i<n; i++)
  cout<<pd[i].month<<endl;
   }
компилятор ругается
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
16.05.2011, 17:13
Цитата Сообщение от ahamoth Посмотреть сообщение
а как сделать чтобы если если месяц = "октябрь" , то выводить записи содержащие месяц с данным названием ? я делаю так:
C++
1
2
3
4
5
6
 for ( i=0; i<n; i++) 
  if  (pd[i].month ="oct")
  {
  for ( i=0; i<n; i++)
  cout<<pd[i].month<<endl;
   }
компилятор ругается
Вы присваиваете статическому массиву константный указатель? Оператор "равно" выглядит так: ==

А зачем второй цикл внутри?
1
 Аватар для ahamoth
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 111
16.05.2011, 17:29  [ТС]
ок , исправил
еще такой вопрос

1) cout<<pd[i].month<<endl;
в этой строчке команда чтобы выводить в соответствии с условием месяц
вопрос: почему выводится вся структура (day, month, year)
2) как сделать чтобы можно было удалять нужную мне запись?
я делаю так :
C++
1
2
3
4
5
cout<< "введите номер удаляемой записи"
cin>>p;
 
for ( i=0; i<n; i++)
delete []pd[p];
компилятор ругается
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
16.05.2011, 17:39
Цитата Сообщение от ahamoth Посмотреть сообщение
ок , исправил
еще такой вопрос

1) cout<<pd[i].month<<endl;
в этой строчке команда чтобы выводить в соответствии с условием месяц
вопрос: почему выводится вся структура (day, month, year)
2) как сделать чтобы можно было удалять нужную мне запись?
я делаю так :
C++
1
2
3
4
5
cout<< "введите номер удаляемой записи"
cin>>p;
 
for ( i=0; i<n; i++)
delete []pd[p];
компилятор ругается
1) Потому что последнее предложение моего предыдущего ответа.
2) Если нужно часто удалять, то лучше воспользоваться списком. std::list.
0
 Аватар для ahamoth
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 111
16.05.2011, 17:46  [ТС]
у меня в задании работа с динамическим массивом, выможете ошибку в коде (для удаления записи) исправить?
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
16.05.2011, 17:54
Цитата Сообщение от ahamoth Посмотреть сообщение
у меня в задании работа с динамическим массивом, выможете ошибку в коде (для удаления записи) исправить?
Нельзя удалять записи, выделенные new[] по частям - иначе потом возможны неприятности при использовании delete[]. Если край надо удалить элемент - только перевыделение памяти с последующим копированием. Ну либо поменять местами элемент для удаления и последний и уменьшить на единицу счетчик длины массива.
0
 Аватар для ahamoth
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 111
16.05.2011, 18:14  [ТС]
а вы не могли бы ваш последний вариант в коде описать? (поменять местами)
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
16.05.2011, 18:39
Цитата Сообщение от ahamoth Посмотреть сообщение
а вы не могли бы ваш последний вариант в коде описать? (поменять местами)
std::swap<tdate>(pb[p],pb[length-1]);

Для tdate должен быть определен конструктор копирования.
0
 Аватар для ahamoth
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 111
16.05.2011, 18:47  [ТС]
Для tdate должен быть определен конструктор копирования.

это мне где и что нужно дописать?
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
16.05.2011, 19:01
Цитата Сообщение от ahamoth Посмотреть сообщение
где
В tdate

Цитата Сообщение от ahamoth Посмотреть сообщение
и что
Конструктор копирования
0
 Аватар для ahamoth
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 111
16.05.2011, 19:11  [ТС]
я не знаю как это сделать , можешь код готовый написать?
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
16.05.2011, 19:16
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2011, 19:16
Помогаю со студенческими работами здесь

3-мерный массив с элементами структурного типа
Напишите, пожалуйста, небольшой пример ДИНАМИЧЕСКОГО трехмерного массива с элементами структурного типа. В интернете не нашел нормального...

Динамический массив элементов произвольного типа
Доброго времени суток. Будьте так добры, если вас не затруднит, помочь &quot;понимающему дубу&quot; с одной назойливой программкой. С...

Считать массив данних структурного типа и вывести их в файл с использованием stdio.h
#include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; struct Date { int month; int day; int year; ...

Ввод информации в массив структурного типа
Доброго времени суток):) Пишу прогу по теме ПЕРЕЧИСЛЕНИЯ И СТРУКТУРЫ, дописав до определенного места столкнулся с ошибками при...

Динамический массив элементов произвольного типа
Доброго времени суток. Будьте так добры, если вас не затруднит, помочь &quot;понимающему дубу&quot; с одной назойливой программкой. С...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru