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

C++ Почему это не работает? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ замещение слова в текста http://www.cyberforum.ru/cpp-beginners/thread42605.html
написала такую программу, нужно заменить в тексте одно слово или символ другим, eсть replacestring function котрою я вызываю дважды. В первый раз всё проходит нормально а второй replacestring(text, "*", ""); выдаёт не тот текст который бы мне хотелось. Если можно намекните пожалуста почему так получается. Спасибо заранее. #include<stdio.h> #define CHARS 50 // 20 int main(void) {
C++ зажатие кнопки Здраствуйте товарищи. как реализовать: пока на клавиатуре нажата кнопка на экране единичка кнопку отпустили на экране нолик. ключевые слова: пока нажата кнопка, остальное пример. какой оператор использовать? Спасибо большое. http://www.cyberforum.ru/cpp-beginners/thread42601.html
битовые операции C++
надо написать ф-цию, которая в данном числе(в двоичной с.с.) на заданном номере ставила 1, вместо 0
Не понимаю логики освобождения памяти C++
Не могу понять каким образом освобождается память если ее ячейки всеравно заполнены, и более того в дальнейшем не используются.. char* a=new char; //выделяет на 02EF2DD0 char* b=new char; delete a; a=new char; // выделяет на 02EF4B50 // при этом значения по адресу 02EF2DD0 остаются неизменными
C++ Площадь наибольшего из прямоугольников матрицы http://www.cyberforum.ru/cpp-beginners/thread42564.html
Дана целочисленная матрица A;i=1,n;j=1,m. Прямоугольником в этой матрице будем называть множество всех элементов A, для которых выполнено 1<=p<=i<=q<=n, 1<=r<=j<=s<=m, где p,q,r,s - натуральные числа, задающие прямоугольник. Площадью прямоугольника назовём число элементов в нём. Среди прямоугольников матрицы,состоящих целиком из нулей, найти тот, который имеет наибольшую площадь. Если бы не...
C++ пжл решити пример про массив.или памагите помогите пожалуйста решить задачу про массив. одномерно массиве, состоящем из n целочисленных элементов, вычислить:1)минимальный по модулю элемент массива 2)сумму модулей элементов массива, расположенных после первого отрицательного элемента. Сжать массив удалив из него все элементы, величина которых находится в инвентаре . Освободившийся в конце массива элементы заполнить нулями. подробнее

Показать сообщение отдельно
demanxxx
0 / 0 / 0
Регистрация: 22.11.2008
Сообщений: 36
01.07.2009, 07:52     C++ Почему это не работает?
Помогите пожалуйста разобраться(создать студента и группу используя наследование)
Код:
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include<iostream>
#include<string.h>
using namespace std;
 
class Student//:public Gruppa
{
public:
    char Cto[20];
    char Fam[20];
    char Name[15];
    char Och[15];
public:
    Student();
    ~Student();
    Student(char*,char*,char*,char*);
    //void Print();
};
struct Elem
{
    char* CtoG;
    char* NameG;
    char* OchG;
    char* FamG;
    Elem *next,*prev;
public:
 
};
class Gruppa:public Student//,public Aspirant
{
    Elem *Head,*Tail;
    int n;
public:
    Gruppa();
    Gruppa(const Gruppa&);
    ~Gruppa();
    void AddTail(Student&);
    void PrintG();
    void DelAll();
    void Del(int);
};
Student::Student()
{
    char Cto[20]={0};
    char Fam[20]={0};
    char Name[15]={0};
    char Och[15]={0};
}
Student::~Student()
{
}
Student::Student(char*C,char*F,char*N,char*O)
{
    strcpy(Cto,C);
    strcpy(Fam,F);
    strcpy(Name,N);
    strcpy(Och,O);
}
Gruppa::Gruppa()
{
   Head = Tail = NULL;
   n = 0;
}
Gruppa::~Gruppa()
{
   DelAll();
}
 
void Gruppa::DelAll()
{
   while(n!= 0)
      Del(1);
}
 
 
void Gruppa::Del(int pos)
{
   if(pos < 1 || pos >n)
   {
      cout << "Incorrect position !!!\n";
      return;
   }
   int i = 1;
 
   Elem * Del = Head;
 
   while(i < pos)
   {
      Del = Del->next;
      i++;
   }
   Elem * PrevDel = Del->prev;
   Elem * AfterDel = Del->next;
   if(PrevDel != 0 && n != 1)
      PrevDel->next = AfterDel;
    if(AfterDel != 0 && n != 1)
      AfterDel->prev = PrevDel;
   if(pos == 1)
       Head = AfterDel;
   if(pos == n)
       Tail = PrevDel;
   delete Del;
 
  n--;
}
void Gruppa::AddTail(Student&S/*char*C,char*F,char*N,char*O*/)
{
    Elem * temp=new Elem;
    strcpy(temp->CtoG,S.Cto);
    strcpy(temp->FamG,S.Fam);
    strcpy(temp->NameG,S.Name);
    strcpy(temp->OchG,S.Och);
    temp->prev = Tail;
    if(Tail != 0)
        Tail->next = temp;
    if(n == 0)
        Head = Tail = temp;
    else
        Tail = temp;            
 
    n++;
 
}
void Gruppa::PrintG()
{
 
    Elem * temp = Head;
 
    while(temp->next != 0)
    {
        /*if(S==temp->CtoG)*/
            cout << temp->CtoG<< " "<<temp->FamG<<" "<<temp->NameG<<" "<<temp->OchG;
        temp = temp->next;
    }
}
void main()
{
    Gruppa A;
    Student S1("Student","Karamishev","Dmitriy","Vitalevich");
    A.AddTail(S1);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru