Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/42: Рейтинг темы: голосов - 42, средняя оценка - 4.52
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
1

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

26.03.2011, 21:23. Показов 7919. Ответов 88
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
всем привет
вот такое задание мне дано:
Описать массив структур, содержащих информацию о результатах сессии: {фамилия; группа; дисциплина; оценка}. Распечатать фамилии студентов, не имеющих оценок ниже «хорошо».

делаю на 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();
}
пояснте, что не так? почему он не хочет сравнивать? и что не так в моем коде?
жду советов, поравки и замечаний, хочу понять и научиться..
заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2011, 21:23
Ответы с готовыми решениями:

Вывести списки студентов по группам
Помогите пожалуйста в задаче, во условие: Написать программу формирования сведения об успеваемости...

Перевести L студентов с 1-й группы в другую (списки)
Даны 2 списка, содержащих фамилии студентов 2-х групп. Перевести L студентов с 1-й группы в другую....

Записи: Вывести списки студентов, упорядоченные по возрасту
Описать и вывести массив, содержащий 10 записей следующей структуры: фамилия, возраст, №...

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

88
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
27.03.2011, 13:28  [ТС] 21
Author24 — интернет-сервис помощи студентам
видишь ли, я typedef использую для того тчоб каждый раз не писать структ кард и поэтому заменяю это как list вместе 2х слов
насчет вылезания за границу, разницы нет хоть 1000 напиши результат тот же
вот напиши ты как считаешь каким образом передавать параметры и возвращать указатель на структуру?
и почему сортировка не правильно фурычит?
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 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.
0
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 то печатать
можно ли как то это реализовать? если да то как?
и как тут сортировку сделать чтоб список выводить в алфавитном порядке ? я про функцию
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
27.03.2011, 17:15 24
Цитата Сообщение от eddilou Посмотреть сообщение
возможно ли как то создать такую структуру в которой будет к примеру содержаться на одного студента несколько дисциплин
Добавь в структуру Студент массив с Дисциплинами.
Цитата Сообщение от eddilou Посмотреть сообщение
и как тут сортировку сделать чтоб список выводить в алфавитном порядке
Напиши предикат для сравнения по имени студента
0
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
27.03.2011, 17:24  [ТС] 25
Цитата Сообщение от Deviaphan Посмотреть сообщение
Добавь в структуру Студент массив с Дисциплинами.

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

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

ведь мне нужно чтоб допустим при вводе было так
польз вводить фамилию затем групппу затем дисиплину затем оценку затем снова дисциплину и снова оценку т.е. пока польз 2 раза энтер не нажмет то не выйдет из написания дисциплины и оценки затем если польз нажал два раза энтер тто выводится сообщ будет ли он дальше вводит фамилию группу и тд если нет то нажать эск
затем список сортируется и затем ввыводить список у которых только хорошие и отличн отметки если же ъхоть одна ниже то не выводить эту фамилию...
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
27.03.2011, 17:36 26
Щаз эксперты по STL объявятся и нарисуют тебе предикат.
Я спать.)
0
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 то распеч фамилию
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 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. Объявил ты правильно, как создавать и удалять массивы я тебе показал.
0
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 для хранения данных ск структур было создано
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 19:53 30
Во первых, программа на С++, поэтому забудь про malloc/free. Только new/delete

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

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

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

И мне вообще не нравится, как ты объекты создаёшь, при объявлении структур.)
0
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 в которой будут хранится дисциплина и оценка
естественно обе струкутры массиивы
т.к. надо создавать большой список студентов и на каждого студента свой рейтинг и набор дисциплин

просто надо же сохранять все это в памяти, естественнно нужно запоминать и наращивать а потом ворошить и искать в этом промежутке то как же сделать е сли я буду делать какт ы говоришь ТО не будет фурычит в плане поиска внутри структуры
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
28.03.2011, 20:04 32
Сделай чтоб фурычило. Статический от динамического массивы различаются только способом создания/удаления. РАботает со статическим, будет и с динамическим. Думай.
0
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);
}
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
29.03.2011, 06:19 34
Цитата Сообщение от eddilou Посмотреть сообщение
delete[]=card и delete[]=session не работают он ошибку выдает
И правильно делает. С какой стати ты = пишешь.)

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

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

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

Добавлено через 2 минуты
Цитата Сообщение от eddilou Посмотреть сообщение
и откуда у меня два объекта с именем лист??
строки 52 и 107.
Раньше по другому два объекта было.) Новый код я "не заметил".)
В строке 115 ты распечатываешь не инициализированные объекты.
0
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
29.03.2011, 15:38  [ТС] 37
почему не иницализированный то? ведь я де передал структуру в функцию т.е. PRINT_LIST(card *list, session *SES)
зачем иницализировать второй раз внутри функции?
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
29.03.2011, 16:05 38
Именно, ты передаёшь в функцию не инициализированные указатели.
Ещё раз посмотри на строки 52 и 107, а потом почитай про область видимости переменных.
0
3 / 3 / 0
Регистрация: 21.11.2010
Сообщений: 194
29.03.2011, 16:31  [ТС] 39
ну почему не иницилизированы то? я же их объявил, а затем иеницализирую в самих функциях, может прямо скажешь что я конкретно не так сдела, я же объявляю потом нгеважно какие значения они имеют до входа в функцию затем они инициализируются в функции самой ывделяю место и забиваю инфой ... я знаю про область видимости и глоб и внутр перемнных
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
29.03.2011, 16:42 40
Внимательно-внимательно посмотри на строку 52. И учти, что имена переменных ничего не значат. Две переменных с одинаковым именем, но в разных областях видимости - это РАЗНЫЕ переменные.
Поэтому посмотри код внимательнее.
В функцию Принт передаются не инициализированные переменные, соответственно печатается мусор.

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

Но код я не смотрел, могут и ещё ошибки быть.
0
29.03.2011, 16:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2011, 16:42
Помогаю со студенческими работами здесь

Список студентов (структуры)
Вводится список студентов (Ф.И.О., номер группы, оценка). Найти номер группы, в которой у всех...

Структуры данных: списки
Нужно сделать программу на с++ на тему &quot;структуры данных: списки&quot;, что именно можно придумать?...

Структуры и односвязные списки
Помогите с задачей. Заранее спасибо. &quot;Сформировать список из натуральных чисел. Заменить...

Структуры данных: Списки
Составить программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru