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

Структуры: Списки студентов - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.81
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
26.03.2011, 21:23     Структуры: Списки студентов #1
всем привет
вот такое задание мне дано:
Описать массив структур, содержащих информацию о результатах сессии: {фамилия; группа; дисциплина; оценка}. Распечатать фамилии студентов, не имеющих оценок ниже «хорошо».

делаю на Borland c++ 3.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
45
46
47
48
49
50
51
52
53
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#define cherta printf("-----------------------------------------------------------------\n")
 
 
struct card
       { struct card *list;
    char *f_name;
    char *group;
    char *dp;
    char *rating;
       }*list;
 
void main()
{clrscr();     struct card **list;
int i=1, N=1;
do{
   for(; i<=N; i++)
   {
    cherta;
    printf("Number karti: %d\n", i);
    printf("Firstname: ");
    gets(list[i]->f_name);
    printf("Number Group: ");
    gets(list[i]->group);
    printf("Dicsipline: ");
    gets(list[i]->dp);
    printf("Rating: ");
    gets(list[i]->rating);
    cherta;
    printf("Nazhmite ENTER esli hotite prodolzhit spisok ili ESC dlya vihoda\n");
    if(getch()==13) N++;
   }
  }while(getch()!=27);
 
  clrscr();
  printf("Spisok studentov u kotorih ocenki 'horosho' i 'otlocno':\n");
 for(i=1; i<=N; i++)
 {
  if(list[i]->rating=="horosho" && list[i]->rating=="otlochno" && list[i]->rating=="4" && list[i]->rating=="5")
   {
    printf("Firstname: %s", list[i]->f_name);
    printf("Number Group: %s", list[i]->group);
    printf("Dicsipline: %s", list[i]->dp);
    printf("Rating: %s", list[i]->rating);
    cherta;
   }
 }
 getch();
}
пояснте, что не так? почему он не хочет сравнивать? и что не так в моем коде?
жду советов, поравки и замечаний, хочу понять и научиться..
заранее спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
27.03.2011, 13:28  [ТС]     Структуры: Списки студентов #21
видишь ли, я typedef использую для того тчоб каждый раз не писать структ кард и поэтому заменяю это как list вместе 2х слов
насчет вылезания за границу, разницы нет хоть 1000 напиши результат тот же
вот напиши ты как считаешь каким образом передавать параметры и возвращать указатель на структуру?
и почему сортировка не правильно фурычит?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.03.2011, 13:53     Структуры: Списки студентов #22
Цитата Сообщение от eddilou Посмотреть сообщение
структ кард
Видишь ли, это атавизм, пришедший из Си, о чём я и говорю. На С++ слово struct писать при объявлении переменных не нужно. Остаётся одно слово card.

Добавлено через 1 минуту
Цитата Сообщение от eddilou Посмотреть сообщение
поэтому заменяю это как list
Это ты так думаешь.) В коде написано иначе, на что компилятор и намекает.

Добавлено через 1 минуту
Цитата Сообщение от eddilou Посмотреть сообщение
возвращать указатель на структуру?
Возвращаемый тип для функции не задан. Ожидается неизвестный тип struct list, а возвращается card.
Говорить что либо об алгоритме бесполезно, т.к. размер массива - Одын.

Добавлено через 2 минуты
Сортировка не работает, т.к. temp'ы не инициализированы. Компилятор должен ругаться, а программа падать. Тебе просто опять не повезло.)
И вообще, не надо выключать предупреждения в настройках.)

Добавлено через 27 секунд
Функции сортировки незачем возвращать что либо, кроме void.
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
27.03.2011, 17:11  [ТС]     Структуры: Списки студентов #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
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#define cherta printf("-----------------------------------------------------------------\n")
 
struct card
       {
    int N;
    char surname[50];
    char group[10];
    char dp[50];
    char rating[20];
       } list[100];
 
struct card *CREATE_LIST()
{
 int i=1;
 list[0].N=1;
 do{
    for(; i<=list[0].N; i++)
    {
     cherta;
     printf("Surname: "); scanf("%s",&list[i].surname);
     printf("Number Group: ");
     scanf("%s",&list[i].group);
     printf("Dicsipline: ");
     scanf("%s",&list[i].dp);
     printf("Rating: ");
     scanf("%s",&list[i].rating);
     cherta;
     printf("Nazhmite ENTER esli hotite prodolzhit spisok ili 2 raza ESC dlya vihoda\n");
     if(getch()==13) list[0].N++;
    }
   }while(getch()!=27);
 return list;
}
 
void PRINT_LIST(card *list)
{
 for(int i=1; i<=list[0].N; i++)
  {
   char *ocenka[]={"horosho", "otlichno", "4", "5"};
   if(strcmp(list[i].rating,ocenka[0])==0
      || strcmp(list[i].rating,ocenka[1])==0
      || strcmp(list[i].rating,ocenka[2])==0
      || strcmp(list[i].rating,ocenka[3])==0)
    {
     printf("Surname: %s\n", list[i].surname);
     printf("Number Group: %s\n", list[i].group);
     printf("Dicsipline: %s\n", list[i].dp);
     printf("Rating: %s\n", list[i].rating);
     cherta;
    }
  }
}
 
void main()
{
do{
 clrscr();
 printf("Vvedite spisok studentov:\n");
 CREATE_LIST();
 clrscr();
 printf("Spisok studentov y kotorix ocenki ne nizhe 'horosho':\n");
 cherta;
 PRINT_LIST(list);
 printf("\nVvesti spisok snova? yes/no (AnyKey/ESC)");
 }while(getch()!=27);
}
вопрос такой, возможно ли как то создать такую структуру в которой будет к примеру содержаться на одного студента несколько дисциплин и если в каком то из них хотя бы одна тройка или ниже есть то не печатать эт список а если ни в 1 дисциплине ни одной тройки и ниже а именно 4 и 5 то печатать
можно ли как то это реализовать? если да то как?
и как тут сортировку сделать чтоб список выводить в алфавитном порядке ? я про функцию
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.03.2011, 17:15     Структуры: Списки студентов #24
Цитата Сообщение от eddilou Посмотреть сообщение
возможно ли как то создать такую структуру в которой будет к примеру содержаться на одного студента несколько дисциплин
Добавь в структуру Студент массив с Дисциплинами.
Цитата Сообщение от eddilou Посмотреть сообщение
и как тут сортировку сделать чтоб список выводить в алфавитном порядке
Напиши предикат для сравнения по имени студента
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
27.03.2011, 17:24  [ТС]     Структуры: Списки студентов #25
Цитата Сообщение от Deviaphan Посмотреть сообщение
Добавь в структуру Студент массив с Дисциплинами.

Напиши предикат для сравнения по имени студента
каким образом? как сделать массив с дисциплинами то? в ту же самую структуру list??

и что такое предикат?

ведь мне нужно чтоб допустим при вводе было так
польз вводить фамилию затем групппу затем дисиплину затем оценку затем снова дисциплину и снова оценку т.е. пока польз 2 раза энтер не нажмет то не выйдет из написания дисциплины и оценки затем если польз нажал два раза энтер тто выводится сообщ будет ли он дальше вводит фамилию группу и тд если нет то нажать эск
затем список сортируется и затем ввыводить список у которых только хорошие и отличн отметки если же ъхоть одна ниже то не выводить эту фамилию...
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.03.2011, 17:36     Структуры: Списки студентов #26
Щаз эксперты по STL объявятся и нарисуют тебе предикат.
Я спать.)
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
28.03.2011, 19:19  [ТС]     Структуры: Списки студентов #27
Цитата Сообщение от Deviaphan Посмотреть сообщение
Щаз эксперты по STL объявятся и нарисуют тебе предикат.
Я спать.)
откуда???? что за эксперты? твои знакомые что ли??)

Добавлено через 7 минут
Deviaphan, не подскажешь как сделать это "Добавь в структуру Студент массив с Дисциплинами."

Добавлено через 13 минут
ну что, разве никто не знает как и что? тут один Deviaphan только умеет со структурами работать?
разве никто не может ничем помочь?

Добавлено через 3 часа 4 минуты
эх.. печально что никто не знает как работать со структурами, неужели программисты вымерли??..

Добавлено через 22 часа 14 минут
Deviaphan, как норм выделять память под структуру и массивы структур? и как запоминать такие числа которые хранят сколько всего было создано я о PR и N в котором содержится максимальное количество созданных структур, т.е. массив и сколько этих структур в массиве, т.е. это числа
вот мой код
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
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#define cherta printf("-----------------------------------------------------------------\n")
struct card
       {
    int N;
    char surname[50];
    char group[10];
    struct session *SES;
       } *list;
 
struct session
       {
    int PR;
    char dp[50];
    char rating[20];
       } *SES;
 
 
struct session *CREATE_LIST_SES(int i)
{
int j=1;
 list[0].SES[0].PR=1;
// do{
 
  for(; j<=list[0].SES[0].PR; j++)
    {
     list[i].SES=(session*)malloc(sizeof(SES));
     printf("Dicsipline: ");
     scanf("%s",&list[i].SES[j].dp);
     printf("Rating: ");
     scanf("%s",&list[i].SES[j].rating);
     if(getch()==13) list[0].SES[0].PR++;
    }
 //  }while(getch()!=27);
 return SES;
}
 
 
struct card *CREATE_LIST()
{ card *list;
 int i=1;
 list[0].N=1;
// do{
    for(; i<=list[0].N; i++)
    {
     cherta;
     list=(card*)malloc(sizeof(list));
     printf("Surname: ");
     scanf("%s",&list[i].surname);
     printf("Number Group: ");
     scanf("%s",&list[i].group);
     CREATE_LIST_SES(i);
     cherta;
     printf("Nazhmite ENTER esli hotite prodolzhit spisok ili 2 raza ESC dlya vihoda\n");
     if(getch()==13) list[0].N++;
    }
//   }while(getch()!=27);
 return list;
}
 
int CONTROL(card *list,  int i)
{int x, x1=1, x2=1;
 for(int j=1; j<=list[0].SES[0].PR; j++)
  {
   char *ocenka[]={"horosho", "otlichno", "4", "5"};
   if(strcmp(list[i].SES[j].rating,ocenka[0])==0
      || strcmp(list[i].SES[j].rating,ocenka[1])==0
      || strcmp(list[i].SES[j].rating,ocenka[2])==0
      || strcmp(list[i].SES[j].rating,ocenka[3])==0) x1=1;
      else x2=0;
      x=x1*x2;
  }
 return x;
}
 
 
void PRINT_LIST(card *list)
{
 for(int i=1; i<=(list[0].N); i++)
  {
   if(CONTROL(list,i)==1)
    {
     printf("Surname: %s\n", list[i].surname);
   //  printf("Number Group: %s\n", list[i].group);
   //  printf("Dicsipline: %s\n", list[i].dp);
   //  printf("Rating: %s\n", list[i].rating);
   //  cherta;
    }
  }
}
 
void main()
{
do{
 clrscr();
 printf("Vvedite spisok studentov:\n");
 CREATE_LIST();
 clrscr();
 printf("Spisok studentov y kotorix ocenki ne nizhe 'horosho':\n");
 cherta;
 PRINT_LIST(list);
 printf("\nVvesti spisok snova? yes/no (AnyKey/ESC)");
 }while(getch()!=27);
}
я уже запарился, статический фурычит НО препод сказал что надо сделать динамический и к тому же чтоб было как у меня вот в структуре еще структура т.е. дисциплина и оценка отдельно дабы на 1 студента куча дисциплин и если среди этой кучи нет ниже чем 3 то распеч фамилию
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 19:25     Структуры: Списки студентов #28
C++
1
2
3
card * list = new card[100];
...
delete[] card;
Это динамически.

Слово struct при объявлении объекта писать не нужно, это не Си.

Строка 20 бессмысленна в данном контексте. Хватит и };

Сессии нужно хранить в виде массива, внутри структуры card. Объявил ты правильно, как создавать и удалять массивы я тебе показал.
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
28.03.2011, 19:48  [ТС]     Структуры: Списки студентов #29
Цитата Сообщение от Deviaphan Посмотреть сообщение
C++
1
2
3
card * list = new card[100];
...
delete[] card;
Это динамически.

Слово struct при объявлении объекта писать не нужно, это не Си.

Строка 20 бессмысленна в данном контексте. Хватит и };

Сессии нужно хранить в виде массива, внутри структуры card. Объявил ты правильно, как создавать и удалять массивы я тебе показал.
погоди, что то не догоняю...
а откуда знать компилятору из скольки массив струтур то будет? ведь я же делаю типа нарост там по нажатию энтер соотв надо выделять место т.е. память...
обрати вним на 31 и 51 строчку что не так то?
и куда дивать list.N и list.SES.PR для хранения данных ск структур было создано
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 19:53     Структуры: Списки студентов #30
Во первых, программа на С++, поэтому забудь про malloc/free. Только new/delete

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

Добавлено через 1 минуту
В третьих, CREATE_LIST и CREATE_LIST_SES используют РАЗНЫЕ list

Добавлено через 1 минуту
К тому же, не инициализированный.

И мне вообще не нравится, как ты объекты создаёшь, при объявлении структур.)
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
28.03.2011, 20:02  [ТС]     Структуры: Списки студентов #31
Цитата Сообщение от Deviaphan Посмотреть сообщение
Во первых, программа на С++, поэтому забудь про malloc/free. Только new/delete

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

Добавлено через 1 минуту
В третьих, CREATE_LIST и CREATE_LIST_SES используют РАЗНЫЕ list

Добавлено через 1 минуту
К тому же, не инициализированный.

И мне вообще не нравится, как ты объекты создаёшь, при объявлении структур.)
)))) еще и смешно тебе))
вот поясни пож-та мне
как сделать структуру list которая будет хранить фамилию, группу, структуру SES в которой будут хранится дисциплина и оценка
естественно обе струкутры массиивы
т.к. надо создавать большой список студентов и на каждого студента свой рейтинг и набор дисциплин

просто надо же сохранять все это в памяти, естественнно нужно запоминать и наращивать а потом ворошить и искать в этом промежутке то как же сделать е сли я буду делать какт ы говоришь ТО не будет фурычит в плане поиска внутри структуры
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 20:04     Структуры: Списки студентов #32
Сделай чтоб фурычило. Статический от динамического массивы различаются только способом создания/удаления. РАботает со статическим, будет и с динамическим. Думай.
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
28.03.2011, 21:18  [ТС]     Структуры: Списки студентов #33
Цитата Сообщение от Deviaphan Посмотреть сообщение
Сделай чтоб фурычило. Статический от динамического массивы различаются только способом создания/удаления. РАботает со статическим, будет и с динамическим. Думай.
понимаешь проблема в том что НЕКУДА мне хранить нфу о том ск создано всего структур на этапе формирования списка ибо kist.N и тд обнуляется

Добавлено через 1 час 7 минут
Цитата Сообщение от Deviaphan Посмотреть сообщение
Сделай чтоб фурычило. Статический от динамического массивы различаются только способом создания/удаления. РАботает со статическим, будет и с динамическим. Думай.
сделал как и говорил ты, НО проблема возникла ОН ее н еудаляет т.е. delete[]=card и delete[]=session не работают он ошибку выдает
и после выхода из фнкции CREATE_LIST значение list[0].N = 0 хотя по идее должен хранить число больше 0 ибо столько скоь создал списков
кстати при помощи твоего NEW вместо мфддщс
он засоряет память а именно если в первом списке я исп неск раз Disc и Rat то во втором списке т.е. допустим создаю 2 фамилию и для него дисц и рат он засоряет ратинг а именно печатает каракули всесто Rating печатаут Rat 4 или 5 ведь написано что printf('Rating") так что скажешь?
вот попробуй на борланде 3,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
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#define cherta printf("-----------------------------------------------------------------\n")
 
/************************************************************************
              STRUCTURS
***********************************************************************/
struct card
       {
    int N;
    char surname[50];
    char group[10];
    struct session *SES;
       };
 
struct session
       {
    int PR;
    char dp[50];
    char rating[20];
       };
/*************************************************************************
               FUNCIONS
**************************************************************************/
 
 
struct session *CREATE_LIST_SES(card *list,int i)
{   session *SES= new session[100];
int j=1;
 list[0].SES[0].PR=1;
// do{
 
  for(; j<=list[0].SES[0].PR; j++)
    {
 //    list[i].SES=(session*)malloc(sizeof(SES));
     printf("Dicsipline: ");
     scanf("%s",&list[i].SES[j].dp);
     printf("Rating: ");
     scanf("%s",&list[i].SES[j].rating);
     if(getch()==13) list[0].SES[0].PR++;
    }
 //  }while(getch()!=27);
 return SES;
}
 
 
 
struct card *CREATE_LIST()
{ card *list= new card[100] ;
 int i=1;
 list[0].N=1;
// do{
    for(; i<=list[0].N; i++)
    {
     cherta;
  //   list=(card*)malloc(sizeof(list));
     printf("Surname: ");
     scanf("%s",&list[i].surname);
     printf("Number Group: ");
     scanf("%s",&list[i].group);
     CREATE_LIST_SES(list,i);
     cherta;
     printf("Nazhmite ENTER esli hotite prodolzhit spisok ili 2 raza ESC dlya vihoda\n");
     if(getch()==13) list[0].N++;
    }
//   }while(getch()!=27);
 return list;
}
 
int CONTROL(card *list, int i)
{int x, x1=1, x2=1;
 for(int j=1; j<=list[0].SES[0].PR; j++)
  {
   char *ocenka[]={"horosho", "otlichno", "4", "5"};
   if(strcmp(list[i].SES[j].rating,ocenka[0])==0
      || strcmp(list[i].SES[j].rating,ocenka[1])==0
      || strcmp(list[i].SES[j].rating,ocenka[2])==0
      || strcmp(list[i].SES[j].rating,ocenka[3])==0) x1=1;
      else x2=0;
      x=x1*x2;
  }
 return x;
}
 
 
void PRINT_LIST(card *list, session *SES)
{
 for(int i=1; i<=(list[0].N); i++)
  {
   if(CONTROL(list,i)==1)
    {
     printf("Surname: %s\n", list[i].surname);
   //  printf("Number Group: %s\n", list[i].group);
   //  printf("Dicsipline: %s\n", list[i].dp);
   //  printf("Rating: %s\n", list[i].rating);
   //  cherta;
    }
  }
}
/***************************************************************************
               PROGRAMMA
****************************************************************************/
void main()
{ card *list; session *SES;
do{
 clrscr();
 printf("Vvedite spisok studentov:\n");
 CREATE_LIST();
 clrscr();
 printf("Spisok studentov y kotorix ocenki ne nizhe 'horosho':\n");
 cherta;
 PRINT_LIST(list, SES);
 printf("\nVvesti spisok snova? yes/no (AnyKey/ESC)"); //delete[]=card; delete[]=session;
 }while(getch()!=27);
}
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
29.03.2011, 06:19     Структуры: Списки студентов #34
Цитата Сообщение от eddilou Посмотреть сообщение
delete[]=card и delete[]=session не работают он ошибку выдает
И правильно делает. С какой стати ты = пишешь.)

Добавлено через 2 минуты
Цитата Сообщение от eddilou Посмотреть сообщение
хотя по идее должен хранить число больше 0
Нет. Ибо я уже сказал, у тебя ДВА объекта с именем list и мне не нравится, как ты создаёшь объекты.
Читай внимательнее.)
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
29.03.2011, 14:41  [ТС]     Структуры: Списки студентов #35
Цитата Сообщение от Deviaphan Посмотреть сообщение
И правильно делает. С какой стати ты = пишешь.)

Добавлено через 2 минуты

Нет. Ибо я уже сказал, у тебя ДВА объекта с именем list и мне не нравится, как ты создаёшь объекты.
Читай внимательнее.)
в каком месте пишу =?? а то там их много)))
ну направь меня в правильное русло, как надо создавать объекты?? как выделять память? как сделать чтоб он запоминал ... и откуда у меня два объекта с именем лист??
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
29.03.2011, 15:21     Структуры: Списки студентов #36
Цитата Сообщение от eddilou Посмотреть сообщение
delete[]=card и delete[]=session
Я же указал, в каком.)

Добавлено через 2 минуты
Цитата Сообщение от eddilou Посмотреть сообщение
и откуда у меня два объекта с именем лист??
строки 52 и 107.
Раньше по другому два объекта было.) Новый код я "не заметил".)
В строке 115 ты распечатываешь не инициализированные объекты.
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
29.03.2011, 15:38  [ТС]     Структуры: Списки студентов #37
почему не иницализированный то? ведь я де передал структуру в функцию т.е. PRINT_LIST(card *list, session *SES)
зачем иницализировать второй раз внутри функции?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
29.03.2011, 16:05     Структуры: Списки студентов #38
Именно, ты передаёшь в функцию не инициализированные указатели.
Ещё раз посмотри на строки 52 и 107, а потом почитай про область видимости переменных.
eddilou
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
29.03.2011, 16:31  [ТС]     Структуры: Списки студентов #39
ну почему не иницилизированы то? я же их объявил, а затем иеницализирую в самих функциях, может прямо скажешь что я конкретно не так сдела, я же объявляю потом нгеважно какие значения они имеют до входа в функцию затем они инициализируются в функции самой ывделяю место и забиваю инфой ... я знаю про область видимости и глоб и внутр перемнных
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2011, 16:42     Структуры: Списки студентов
Еще ссылки по теме:

C++ Создание структуры Список студентов
Перевести L студентов с 1-й группы в другую (списки) C++
C++ Список студентов (структуры)

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

Или воспользуйтесь поиском по форуму:
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
29.03.2011, 16:42     Структуры: Списки студентов #40
Внимательно-внимательно посмотри на строку 52. И учти, что имена переменных ничего не значат. Две переменных с одинаковым именем, но в разных областях видимости - это РАЗНЫЕ переменные.
Поэтому посмотри код внимательнее.
В функцию Принт передаются не инициализированные переменные, соответственно печатается мусор.

Ладно, сжалюсь: в строке 111 должно быть
list = CREATE_LIST();

Но код я не смотрел, могут и ещё ошибки быть.
Yandex
Объявления
29.03.2011, 16:42     Структуры: Списки студентов
Ответ Создать тему
Опции темы

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