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

Динамическая память

09.12.2008, 13:05. Показов 2875. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, если кому не сложно помогите переделать вот эту программу со структурами
нужно сделать так чтобы для хранения данных она использовала динамическую память вот программа:


Code
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
 
struct event{
  char name[10];
  int year;
  int month;
  int day;
  int hn;
  int mn;
  int hk;
  int mk;
};
 
struct event s[25];
int n;
 
void input(struct event *a){
  printf("vvedite meropriatie: ");
  scanf("%s",&a->name);
  printf("vvedite deni: ");
  scanf("%i",&a->day);
  printf("vvedite mecyz: ");
  scanf("%i",&a->month);
  printf("vvedite god: ");
  scanf("%i",&a->year);
  printf("vvedite chas nachala: ");
  scanf("%i",&a->hn);
  printf("vvedite minuty nachala: ");
  scanf("%i",&a->mn);
  printf("vvedite chas konca: ");
  scanf("%i",&a->hk);
  printf("vvedite minuty konca: ");
  scanf("%i",&a->mk);
  printf("\n");
}
 
void output(struct event *a){
  printf("%s\t%i\t%i\t%i\t%i\t%i\t%i\t%i\n",(*a).name,(*a).day,(*a).month,(*a).year,(*a).hn,(*a).mn,(*a).hk,(*a).mk);
}
 
 
int vvod(struct event *a,int f){
struct event t;
int i,j,k,l;
 
  printf("\n1 - Cozdati novuy zapisi\n");
  printf("2 - Obnovit suchestvuuchuu\n");
  scanf("%i",&j);
  if (j==1){
    do{
      clrscr();
      printf("vvedite kol-vo meropriatiy(<25): \n\n");
      scanf("%i",&f);
    }while ((f<1) && (f>25));
    for(i=0;i<f;i++)
    input(&a[i]);
  }
  if (j==2){
    printf("\n1 - dobavit zapis\n");
    printf("\n2 - udaliti zapis\n");
    scanf("%i",&k);
    if (k==1){
      input(&a[f]);
      f++;
    }
    if (k==2){
      printf("nomer zapisi");
      scanf("%i",&l);
      for(i=l-1;i<f-1;i++){
    t=a[i];
    a[i]=a[i+1];
    a[i+1]=t;
      }
      f--;
    }
  }
  return f;
}
 
void vyvod(struct event *a,int f){
int i;
 
  printf("meropriatie\tdata\t      vremy nachala\tvremy konca\n\n");
  for(i=0;i<f;i++)
    output(&a[i]);
  getch();
}
 
 
void sortvn(struct event *a,int f){
int i,j;
struct event t;
 
  for(i=0;i<f-1;i++){
    for(j=i+1;j<f;j++){
      if ((a[i].hn>a[j].hn) || ((a[i].mn>a[j].mn) && (a[i].hn==a[j].hn))){
    t=a[i];
    a[i]=a[j];
    a[j]=t;
      }
    }
  }
}
 
void sortvk(struct event *a,int f){
int i,j;
struct event t;
 
  for(i=0;i<f-1;i++){
    for(j=i+1;j<f;j++){
      if ((a[i].hk>a[j].hk) || ((a[i].mk>a[j].mk) && (a[i].hk==a[j].hk))){
    t=a[i];
    a[i]=a[j];
    a[j]=t;
      }
    }
  }
}
 
void peresek(struct event *a,int f){
int i,j;
 
  printf("\nperesekauchiesia zapisi\n");
  for(i=0;i<f-1;i++){
    for(j=i+1;j<f;j++){
      if ((a[i].name==a[j].name) || (a[i].year==a[j].year) || (a[i].month==a[j].month) || (a[i].day==a[j].day) || (a[i].hn==a[j].hn) || (a[i].mn==a[j].mn) || (a[i].hk==a[j].hk) || (a[i].mk==a[j].mk)){
    output(&a[i]);
    output(&a[j]);
    printf("\n");
      }
    }
  }
  getch();
}
 
void maxtime(struct event *a,int f){
int i,j,s,d;
long int max,maxi;
struct event t;
 
  for(i=0;i<f-1;i++){
    for(j=i+1;j<f;j++){
      if ((a[i].year>a[j].year) || ((a[i].year==a[j].year) && (a[i].month>a[j].month)) || ((a[i].year==a[j].year) && (a[i].month==a[j].month) && (a[i].day>a[j].day))){
    t=a[i];
    a[i]=a[j];
    a[j]=t;
      }
    }
  }
  max=0;
  s=i;
  d=i;
  for(i=0;i<f-1;i++){
    for(j=i+1;j<f;j++){
      maxi=(a[j].year-a[i].year)*8760l+(a[j].month-a[i].month)*744l+(a[j].day-a[i].day);
      if (max<maxi){
    max=maxi;
    s=i;
    d=j;
      }
    }
  }
  output(&a[s]);
  output(&a[d]);
  printf("%i chas(ov)",abs(max));
  getch();
}
 
void in_file(struct event *a)
{
FILE *f;
char fn[50];
char *c;
int i;
  printf("vvedite imy file ");
  scanf("%s",fn);
  f=fopen(fn,"wb");
  if (!f)
    printf("Oshibka otkritiya faila %s\n",fn);
  else{
    rewind(f);
    c=(char *)a;
    for(i=0;i<sizeof(s);i++)
      putc(*c++,f);
  }
  fclose(f);
}
 
int from_file(struct event *a)
{
FILE *f;
char fn[50];
char *c;
int i;
  printf("vvedite imy file ");
  scanf("%s",fn);
  f=fopen(fn,"rb");
  if (!f){
    printf("Oshibka otkritiya faila %s\n",fn);
    getch();
  }else{
    c=(char *)a;
    for(i=0;i<sizeof(s);i++){
      if((*c=getc(f))!=EOF) c++;
      else fclose(f);
    }
  }
 
  for(i=0,n=0;i<25;i++){
    if (strlen(a[i].name)!=0 && a[i].year!=0 && a[i].month!=0 && a[i].day!=0 && a[i].hn!=0 && a[i].hk!=0 && a[i].mn!=0 && a[i].mk!=0){
    n++;
    }
  }
  return n;
}
 
void main(void){
int v;
 
  while(1){
    clrscr();
    printf("\n1. vvod dannih\n");
    printf("2. sortirovka po vremeny nachala\n");
    printf("3. sortirovka po vremeny okonchania\n");
    printf("4. poisk perekryvauchihsy zapisei\n");
    printf("5. poisk max nezanytogo promegutka vremeni\n");
    printf("6. vyvod dannih\n");
    printf("7. zapis v file\n");
    printf("8. chtenie U3 file\n");
    printf("9. VIHOD\n");
    printf("\n viberete deistvie:");
    scanf("%i",&v);
    switch (v){
      case 1:{n=vvod(s,n);break;}
      case 2:{sortvn(s,n);break;}
      case 3:{sortvk(s,n);break;}
      case 4:{peresek(s,n);break;}
      case 5:{maxtime(s,n);break;}
      case 6:{vyvod(s,n);break;};
      case 7:{in_file(s);break;};
      case 8:{from_file(s);break;};
      case 9:{exit(1);}
    }
  }
}
Помогите плиз
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.12.2008, 13:05
Ответы с готовыми решениями:

Азы: статическая память, динамическая память, автоматическая память
столько раз приходистя возвращаться к началу, и все благодаря моим преподавателям, которые не давали задавать вопросы на парах, а если это...

Статическая память,Динамическая память.
a) Статическая память. Двумерный массив. Дан массив целых чисел. В массиве есть отрицательные числа. Определить координаты левого нижнего...

Динамическая память
int set_arr(char* arr, int size, int pos, char* str) { if (pos &lt;0 || size &lt;= 0) { return 1; } str = (char*)malloc(N *...

4
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
09.12.2008, 13:14
Сам что-нибудь пробовал? Используй malloc, например...
0
0 / 0 / 0
Регистрация: 29.09.2008
Сообщений: 9
09.12.2008, 13:21  [ТС]
Пробовал, но не понял как пользоваться, не получается. Или сохраняет не правильно или считывает из файла косяченно. Можешь написать куда этот малок пихать.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
09.12.2008, 13:28
Туда, где ты собираешься память выделять. Эта функция в качестве параметра берет объем выделяемой памяти. На форуме есть примеры ее использования.
0
0 / 0 / 0
Регистрация: 29.09.2008
Сообщений: 9
09.12.2008, 16:10  [ТС]
спасибо, попробую
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.12.2008, 16:10
Помогаю со студенческими работами здесь

Динамическая память
Есть 2 массива одной размерности: int *m1 = new int , *m2 = new int ; где N, M некие числа. Собственно вопрос: как...

Динамическая память
Здраствуйте!!!! Помогите выделить память под двумерные массив элементами которого являются слова. Было бы хорошо листинг программы....

Динамическая память
Короче, есть у моего шаблонного класса один метод, который принимает в качестве параметра указатель на динамический массив, и уже вроде бы...

Динамическая память
Добрый вечер! Возникла у меня такая проблемка, нужно от статической памяти перейти к динамической. То ли уже голова не варит, то ли руки не...

Динамическая память
Помогите перевести массивы в динамическую память пожалуйста + почему-то не работает запись в файл(не перезаписывает). #include...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru