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

Некорректная передача параметра - C++

Восстановить пароль Регистрация
 
bestpalyer1
-1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 47
21.04.2013, 16:11     Некорректная передача параметра #1
Как правильно передать параметр для того, чтобы меню заработало? Происходит завершение работы программы!


C++
1
2
3
4
5
6
7
struct Single_List //Структура данных
{
int Data; //Информационное поле
Single_List *Next; //Адресное поле
};
 
Single_List *Head; //Указатель на первый элемент списка
C++
1
void Make_Single_List(int n,Single_List** Head) {} //Создание однонаправленного списка
C++
1
void Print_Single_List(Single_List* Head) {}  //Печать однонаправленного списка
C++
1
Single_List* Delete(Single_List *Head) {} //Удаление последнего четного элемента

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
void Switching(int n) //Меню
{
int f;
cout<<"1.Формирование 2.Удаление последнего четного элемента 3.Печать 4.Выход\n";
Single_List* Head = NULL; //??????????????????????????????????
do 
{
cout<<"Ваш выбор:";
cin>>f;
 
switch(f)
{
case 1:
    {
        cout << "Формирование списка добавлением в начало!" << endl;
        Make_Single_List(n,Head); //????????????????????
        break;
    }
case 2:
    {
        Delete(Head); //???????????????????????????
        break;
    }
case 3:
    {
        Print_Single_List(Head); //?????????????????????????????
        break;
    }
}
cout<<"\n";}
while(f!=4);
}

Полный код программы:
Кликните здесь для просмотра всего текста

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
#include <iostream>
#include <string>
#include <cstring>
#include <windows.h>
#include <limits>
using namespace std;
 
 
 
struct Single_List //Структура данных
{
int Data; //Информационное поле
Single_List *Next; //Адресное поле
};
 
Single_List *Head; //Указатель на первый элемент списка
 
 
void Make_Single_List(int n,Single_List** Head) //Создание однонаправленного списка
{
if (n > 0) {
(*Head) = new Single_List();
//Выделяем память под новый элемент
cout << "Введите значение:";
cin >> (*Head)->Data;
//Вводим значение информационного поля
(*Head)->Next=NULL;//Обнуление адресного поля
Make_Single_List(n-1,&((*Head)->Next));
}
}
 
 
 
void Print_Single_List(Single_List* Head)  //Печать однонаправленного списка 
{
if (Head != NULL) {
cout << Head->Data << "\t";
Print_Single_List(Head->Next);
//переход к следующему элементу
}
else cout << "\n";
}
 
 
Single_List* Delete(Single_List *Head) //рекурсивная реализация будет значительно менее эффективной и куда менее читабельной
{
Single_List*k=Head;
int g=-1;int i=0;
int l=0;
int n=0;
while(k!=0)
{
   if((k->Data)%2==0)
{
    l=i;g=1;
}
k=k->Next;n=i;i++;
}
k=Head;
if(g!=-1)
 
{
    for(int i=0;i<n;i++)
 {
    if(i==l-1)
  {
    k->Next=k->Next->Next;
  }
k=k->Next;
 }
cout << "Удаление произведено!" << endl;    
}
else cout<<"Четный элементов нет-удаление не произведено." << endl;
return Head;
}
 
 
void Switching(int n)
{
int f;
cout<<"1.Формирование 2.Удаление последнего четного элемента 3.Печать 4.Выход\n";
Single_List* Head = NULL; //??????????????????????????????????
do 
{
cout<<"Ваш выбор:";
cin>>f;
 
switch(f)
{
case 1:
    {
        cout << "Формирование списка добавлением в начало!" << endl;
        Make_Single_List(n,Head); //????????????????????
        break;
    }
case 2:
    {
        Delete(Head); //???????????????????????????
        break;
    }
case 3:
    {
        Print_Single_List(Head); //?????????????????????????????
        break;
    }
}
cout<<"\n";}
while(f!=4);
}
 
 
 
void main ()
{
setlocale(LC_ALL,"RUS");
int n;
cout<<"Введите количество элементов для формирования однонаправленного списка n:";
cin>>n;
while(n<=0 || n>10)
{
    cout << "Введите размер заново:";
    cin >> n;
}
cout << endl;
Switching(n);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2013, 16:11     Некорректная передача параметра
Посмотрите здесь:

C++ Передача параметра в потоки
Передача параметра по ссылке C++
C++ передача параметра
передача параметра в функцию C++
передача параметра в класс C++
C++ Передача параметра в функцию
C++ Передача параметра функции
C++ Передача параметра из класса в класс

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

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

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