,   CyberForum.ru

- C++

 
 
SuLLeN
   SuLLeN
21 / 21 / 4
: 27.12.2011
: 767
15.11.2012, 16:15     #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
#include <iostream>
#define MAX 15
 
using namespace std;
 
char *stack[MAX]; // Ì*ññèâ äëÿ ñòåê*
int tos=0; // Äëÿ âåðøè*û ñòåê*
 
void push(char *i) // Ôó*êöèÿ äîá*âëå*èÿ ýëåìåò* â ñòýê
{
    if(tos >= MAX) // Ïðîâåðê* ** ç*ïîë*å**îñòü ñòåê*
    {
        printf("Steck polon\n");
        return;
    }
    strcpy(stack[tos],i); // Ç*ïèñûâ*åì ñòðîêó â ñòýê
    tos = tos + 1; // Óâåëè÷èâ*åì âåðøè*ó ñòýê*
}
 
int size() // Äëÿ îïðåäåëå*èÿ ð*çìåð* ñòåê*
{
    if (tos >= 0) return tos;// Åñëè áîëüøå *óëÿ, òî âîçâð*ù*åì òåêóùåå ç**÷å*èå âåðøè*û ñòýê*
    else return 0; // è**÷å âîçâð*ù*åì *îëü
}
 
char *pop(void) // Ôó*êöèÿ âûò*ñêèâ**èÿ ýëåìå*ò* èç ãîëîâû
{
    char *str = new char[30]; // Áóôôåð
    tos = tos - 1; // Ñäâèã*åìñÿ îò ãîëîâû â*èç
    if(tos < 0) // Åñëè âåðøè** ìå*üøå *óëÿ, òî ñòýê ïóñòîé
    {
        printf("Steck pust\n");
        return 0;
    }
    str = stack[tos]; //è**÷å â áóôôåð ïîìåø*åì òåêóùåå ç**÷å*èå âåðøè*û
    return str; // âåçâð*ù*åì ýòî ç**÷å*èå
}
 
void delet(char *element) // Ôó*êöèÿ óä*ëå*èÿ
{
    int razmer = size(); // Ïîëó÷*åì ð*çìåð*îñòü ñòåê*
    char *buf[MAX]; // Äëÿ áóôôåð*, èñ÷ïîëüçóåòñÿ ïðè óä*ëå*èè
    for(int i = 0;i<MAX;i++) // ÂÛäåëå*èå ï*ìÿòè
    {
        buf[i] = new char[30];
    }
    int c = 0; // Ñ÷åò÷èêè
    int ravn = 0;
    for(int i = 0;i<=size();i++) // Öèêë äëÿ óä*ëå*èÿ
    {
        /*Ïðîâåðÿåì,åñëè *å ð*â*û ýëåìå*ò èç
        ñòåê* è ýëåìå*ò ââåäåä*ûé ñ êë*âè*òóðû,
        òî êîïèðóåì â áóôôåð
        óâåëè÷èâ*åì ñ÷åò÷èê
        è óä*ëÿåì ïîë*îñòüþ ä***óþ ÿ÷åêó èç ñòåê**/
        if (strcmp(element,stack[i])!=0)
        {
            strcpy(buf[c],stack[i]);
            c = c + 1;
            delete stack[i];
        }
        else //è**÷å ïðîñòî óä*ëÿåì ïîë*óñòüþ ÿ÷åéêó èç ñòåê*
        {
            delete stack[i];
            ravn = ravn + 1;
        }
    }
    tos=0;
    /*Âûäåëÿåì ï*ìÿòü äëÿ ñòåê*, ò*ê ê*ê î** áûë*
    óä*ëå**
    è êë*äåì â ñòåê ç**÷å*èÿ*/
    for (int i=0;i<=(razmer-ravn);i++)
    {
        stack[i] = new char[30];
        push(buf[i]);
    }
}
 
int main() // Îc*îâ*îå òåëî ïðîãð*ììû
{
    system("chcp 1251");
    setlocale(0, "rus");
    
    for (int i = 0;i<MAX;i++) // Âûäåëå*èå ïï*ìÿòè äëÿ ýëåìå*òîâ ñòýê
    {
        stack[i] = new char[30];
    }
    int NumberOfElements = 0; // ×èñëî ýëåìå*òîâ ñòåê*
    char *Element = new char[30]; // Äëÿ ââîä* ýëåìå*ò* äëÿ óä*ëå*èÿ
    cout << "Ñêîëüêî ýëåìå*òîâ äîá*âèòü: "; // Ââîä êîëè÷åñòâ* ýëåìå*òîâ ñòåê*
    cin >> NumberOfElements;
    cout << "Ââåäèòå ýëåìå*òû" << endl;
    
    for (int i = 0;i < NumberOfElements; i++) // Ââîä ýëåìå*òîâ
    {
        cout << "Ýëåìå*ò " << i << ": ";
        cin >> Element;
        push(Element);
    }
    cout << "Âåðõ*èé ýëåìå*ò: " << pop() << endl; // Ââîä ýëåìå*ò* äëÿ óä*ëå*èÿ
    cout << "Ê*êîé ýëåìå*ò óä*ëèòü: ";
    char *ItemToDelete = new char[30];
    cin >> ItemToDelete;
    delet(ItemToDelete); // Óä*ëå*èå ýëåìå*ò*
    cout <<"Âåðõ*èé ýëåìå*ò: " << pop() << endl << endl; // Ïå÷*òü òåêóùåé âåðøè*û ñòåê*
    system("PAUSE");
}
5 13
...
Similar
41792 / 34177 / 6122
: 12.04.2006
: 57,940
15.11.2012, 16:15    
:

C++
C++
C++
C++
getline() C++
.
MoreAnswers
37091 / 29110 / 5898
: 17.06.2006
: 43,301
17.11.2012, 20:56    
:

, VS C++
C++
[2], + 12 C++



:
Kuzia domovenok
   Kuzia domovenok
1883 / 1738 / 116
: 25.03.2012
: 5,907
: 1
17.11.2012, 20:56     #21
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 <iostream>
#include <string>
#include <limits>
#define MAX 15
 
using namespace std;
struct sport
{
    string fio;
    string vid;
    string fak;
    string spc;
    string lvl;
} *stack[MAX]; //   
int tos=0; //   
void print(sport *elem) {
    
    cout<<"fio: "<<elem->fio<<endl;
    cout<<"vid: "<<elem->vid<<endl;
    cout<<"fak: "<<elem->fak<<endl;
    cout<<"spc: "<<elem->spc<<endl;
    cout<<"lvl: "<<elem->lvl<<endl;
 
}
void push(sport *elem) //     
{
    if(tos >= MAX) //    
    {
        cout << " !" << endl;
        return;
    }
    stack[tos]=elem;
    tos = tos + 1; //   
}
 
int size() //    
{
    if (tos >= 0) return tos;//   ,      
    else return 0; //   
}
 
sport *pop(void) //     
{
    tos = tos - 1; //    
    if(tos < 0) //    ,   
    {
        cout << " !" << endl;
        return 0;
    }
    return stack[tos]; //   
}
 
sport *delet(int id) //  
{
    if ((id>tos)||(id<=0)) return NULL;
    sport* elem=stack[id-1];
    for (int i=id; i<tos; i++)
        stack[i-1]=stack[i];
    tos--;
    return elem;
 
}
void clear(){
    for (int i=0; i<tos; i++)
        delete stack[i];
}
 
 /* 
*/
void inputElement(sport * obj)
{
     
        cout << "  ...: ";
        
        getline(cin, (obj->fio));
 
        cout << "   : ";
        getline(cin, (obj->vid));
        cout << "   : ";
        getline(cin, (obj->fak));
        cout << "   : ";
        getline(cin, (obj->spc));
        cout << "   : ";
        getline(cin, (obj->lvl));
        cout << endl;
} 
int main() // c  
{
    //system("chcp 1251");
    setlocale(LC_ALL, "russian");
    
    int n;
    cout<<"  n:";
    (cin)>>n;
 
 
    
    sport* Element; //   
    for (int i = 0;i<n;i++){
        Element=new sport;
        inputElement(Element);
        push(Element);
        //delete Element;
    }
    
    Element=pop();
    cout << " : "<< endl;
    print(Element);
    cout << "  ? ( ): "; //    
    cin>>n;
    delete delet(n);
    Element=pop();
    cout << " : "<< endl;
    print(Element);
    clear();
    
    system("PAUSE");
}
.
Yandex
17.11.2012, 20:56    

: 19:18. GMT +3.
- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
@Mail.ru