0 / 0 / 0
Регистрация: 15.11.2014
Сообщений: 22
1

Сформировать стек из массива

05.05.2015, 17:12. Показов 674. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан массив данных о работниках фирмы:ФИО и дату поступления на работу.Сформировать стек,в который попадут данные тех из них,кто на сегодняшний день проработал уже не менее 5 лет.
Ошибки инициализация FIO и year(начиная с 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include<iostream>
#include<conio.h>
 
using namespace std;
 
struct Danie                                  //Структура
{ char *FIO;                                  //Фамилия Имя Отчество
  char year;                                  //Дата поступления на работу
  Danie* Next;                                //Указатель на следуйщий элемент
};
 
Danie* TopPointer;                            //Указатель на вершину стека
int IsEmpty()                                 //проверка стека на пустоту
{
    return(!TopPointer);
}
 
void Get(char& FIO,char& year)         //Чтение вершины без ее извлечения из стека
{
     if(!TopPointer) 
     cout<<"Stek pust!\n";
     else            
     FIO  = TopPointer->FIO;
     year = TopPointer->year;
}
 
void Push(char FIO,char& year)              //Положить значение в стек 
{
     Danie* temp;                             //Временый указатель
     temp = new Danie;
     temp -> FIO=FIO;
     temp -> year=year;
     temp -> Next =TopPointer;
     TopPointer = temp;
}
 
void Pop(char& FIO,char& year)            //Убрать из стека
{
     if(!TopPointer)    cout<<"Stek pust!\n";
     else
     {
         Danie* temp;                      //Временый указатель
         FIO     = TopPointer->FIO;
         year    = TopPointer->year;
         temp    = TopPointer->Next;
         delete TopPointer;                  //Освобождение памяти
         TopPointer = temp;
                      }
}
 
void Input(Danie *s)                          //Ввод данных(использую указатель s*)
{
     cout<<"Vvedite FIO";
     s->FIO= new char [30];
     cin.get;
     cin.getline(s->FIO,30);
     cout<<endl;
     cout<<"Vvedite god postooplenia na rabotoo";
     cin>>s->year;
     cout<<endl;
}
 
int main()
{
    Danie d[3];
    Input (&d);                             // &d ссылка
    int g,l,i=0;
    cout<<"Vvedite god otcheta: ";           //Год от которого идет отсчет
    cin>>g;                                 
    do                                      //Заполнение стека(Пока)
    {
                                            if(l=(g-d.year)
                                            (l=>5)
                                            Push(d[i].FIO[30])
                                            cout<<"Ne menia 5 let prorabotal(a): \n"<<d[i].FIO[30];
                                            cout<<"Ego data vstooplenia na rabotoo: \n"<<d[i].year;
                                            cout<<endl;
                                            i++;
                                            else
                                            Pop(d[i].FIO[30])
                                            }
                                            while(i>=3)
   
          getche ();
          return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2015, 17:12
Ответы с готовыми решениями:

Сформировать стек из 6 цифр. Вывести стек на экран. Удалить элементы из стека, увеличить каждый из них на единицу и снов
Сформировать стек из 6 цифр. Вывести стек на экран. Удалить элементы из стека, увеличить каждый из...

Сформировать стек из N чисел. Найти сумму нечетных чисел из стека. Результат поместить в стек
Здравствуйте. Помогите, пожалуйста, решить задачу: Сформировать стек из N чисел. Найти сумму ...

Сформировать стек из N студентов
Решил, что через if буду сразу заносить фамилии с средней оценкой &gt;=4 в стек, а остальных сразу в...

Задача на стек (сформировать 2 стека из положительных и отрицательных)
Здравствуйте, помогите решить задачу Ввести 10 чисел, разместив в стек. сформировать из этих чисел...

3
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
05.05.2015, 22:32 2
Цитата Сообщение от pre100 Посмотреть сообщение
FIO *= TopPointer->FIO;
FIO = *TopPointer ->FIO; тоже и в 43 строке.

строка 55 cin.get();

строка 66 Input (d);

Цитата Сообщение от pre100 Посмотреть сообщение
if(l=(g-d.year)
* * * * * * * * * * * * * * * * * * * * * * (l=>5)
не хватает скобки. Присвоить замени на ==
d[...].year- это массив. Условие не известно что делает...

Цитата Сообщение от pre100 Посмотреть сообщение
Push(d[i].FIO[30])
Требует два аргумента.

Цитата Сообщение от pre100 Посмотреть сообщение
d[i].FIO[30];
Когда это поле выросло до 30?

Цитата Сообщение от pre100 Посмотреть сообщение
if(l=(g-d.year)
* * * * * * * * * * * * * * * * * * * * * * (l=>5)
* * * * * * * * * * * * * * * * * * * * * * Push(d[i].FIO[30])
* * * * * * * * * * * * * * * * * * * * * * cout<<"Ne menia 5 let prorabotal(a): \n"<<d[i].FIO[30];
* * * * * * * * * * * * * * * * * * * * * * cout<<"Ego data vstooplenia na rabotoo: \n"<<d[i].year;
* * * * * * * * * * * * * * * * * * * * * * cout<<endl;
* * * * * * * * * * * * * * * * * * * * * * i++;
У условия должно быть тело!

Цитата Сообщение от pre100 Посмотреть сообщение
Pop(d[i].FIO[30])
Эта функция тоже требует два аргумента.

Цитата Сообщение от pre100 Посмотреть сообщение
while(i>=3)
Что такое ; вам не известно в принципе...
1
0 / 0 / 0
Регистрация: 15.11.2014
Сообщений: 22
06.05.2015, 16:23  [ТС] 3
Теперь пишет ошибку в 31 строке invalid conversion from `char' to `char*'
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
#include<iostream>
#include<conio.h>
 
using namespace std;
 
struct Danie                                  
{ char *FIO;                                  
  char year;                                  
  Danie* Next;                                
};
 
Danie* TopPointer;                            
int IsEmpty()                                 
{
    return(!TopPointer);
}
 
void Get(char& FIO,char& year)         
{
     if(!TopPointer) 
     cout<<"Stek pust!\n";
     else            
     FIO  = *TopPointer->FIO;
     year = TopPointer->year;
}
 
void Push(char FIO,char year)              
{
     Danie* temp;                             
     temp = new Danie;
     temp -> FIO=FIO;
     temp -> year=year;
     temp -> Next =TopPointer;
     TopPointer = temp;
}
 
void Pop(char& FIO,char& year)            
{
     if(!TopPointer)    cout<<"Stek pust!\n";
     else
     {
         Danie* temp;                      
         FIO     = *TopPointer->FIO;
         year    = TopPointer->year;
         temp    = TopPointer->Next;
         delete TopPointer;                  
         TopPointer = temp;
                      }
}
 
void Input(Danie *s)                          
{
     cout<<"Vvedite FIO";
     s->FIO= new char [30];
     cin.get();
     cin.getline(s->FIO,30);
     cout<<endl;
     cout<<"Vvedite god postooplenia na rabotoo";
     cin>>s->year;
     cout<<endl;
}
 
int main()
{
    Danie d[3];
    Input (d);                             
    int g,l,i=0;
    cout<<"Vvedite god otcheta: ";           
    cin>>g;                                 
    for(i;i>=3;i++)                                      
    {
                                            if(l=(g-d[i].year)&&(l>5))
                                            {cout<<"Ne menia 5 let prorabotal(a): \n"<<d[i].FIO[30];
                                            cout<<"Ego data vstooplenia na rabotoo: \n"<<d[i].year;
                                            cout<<endl;
                                            Push(d[i].FIO[30],d[i].year);
                                            i++;}
                                            else
                                            {Pop(d[i].FIO[30],d[i].year);}
                                            }
          getche ();
          return 0;
}
0
47 / 47 / 23
Регистрация: 14.04.2013
Сообщений: 188
06.05.2015, 17:02 4
pre100, В этом коде очень много ошибок
C++
1
2
3
4
5
6
7
8
9
10
void Push(char *FIO,char year)              
{
     Danie* temp;                             
     temp = new Danie;
     temp -> FIO= new char[strlen(FIO) + 1];
     strcpy(temp -> FIO, FIO);
     temp -> year=year;
     temp -> Next =TopPointer;
     TopPointer = temp;
}
код все равно не взлетит, не правильно используете в майне
1
06.05.2015, 17:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2015, 17:02
Помогаю со студенческими работами здесь

Сформировать два одномерных массива Z1, Z2 длиной n, элементы массива Z1 сформировать как случайные целые числа
Сформировать два одномерных массива Z1, Z2 длиной n, элементы массива Z1 сформировать как...

Сформировать стек из n натуральных чисел
Помогите написать. Сформировать стек их n натуральных чисел, просмотреть его и уменьшить нечетные...

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

Из элементов «очереди» сформировать второй «стек»
необходимо из элементов «очереди» сформировать второй «стек» заранее спасибо.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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