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

Объяснить работу функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Асемблерный модуль и С++ http://www.cyberforum.ru/cpp-beginners/thread595255.html
Программа должна считать количество слов вправо от самого короткого. ввод строки должен быть реализован в модуле С++, а ее обработка в асемблерном модуле. как компилировать программу я разобрался на более простом задании(сложение двух интов), но тут возникают проблемы. Думаю, я совсем не правильно передаю строку в асемблерный модуль. исходники имеются работа алгоритма подсчета слов меня...
C++ Решение краевой задачи для дифференциального уравнения методом сеток Мне в университете задали данную программу написать. но к сожалению на паре мы не успели пройти этот метод. не могу найти точный пример этого метода, не могли подсказать ? формулы , или прислать может ссылку на конкретный пример? http://www.cyberforum.ru/cpp-beginners/thread595254.html
Шаблон класса (параметризация класса) C++
Нужна помощь и советы!!! Англо-русский словарь построен как список. Каждая компонента содержит английское слово, соответствующее ему русское слово и счетчик количества обращений к данной компоненте. Первоначально список формируется согласно английскому алфавиту. В процессе эксплуатации словаря при каждом обращении к компоненте в счетчик обраще¬ний добавляется единица. Составить программу,...
C++ Индекс первого появления буквы в строке
Всем доброго времени суток! Есть вот такое задание: int find(char *S; char c) Найти место первого появления в строке S какой-либо буквы, если строка S не содержит этой буквы, возвращает значение –1. Задано сделать с помощью указателей и через While. Буду очень признателен за любую помощь.
C++ String, что не так? http://www.cyberforum.ru/cpp-beginners/thread595231.html
Здравствуйте! Помогите разобраться, что не так. # include <iostream> # include <cstring> using namespace std; class string { public: string (char*); void str_append(char*);
C++ Изменения массивов Здравствуйте. Подскажите пожалуйста. Вот допустим, существует 2а массива : 1:1 2 3 4 5; 2:6 7 2 4 9; как объеденить оба массива в новый ? (чтобы числа из обоих массивов не повторялись) что бы получилось так: 1 2 3 4 5 6 7 9 подробнее

Показать сообщение отдельно
Faustik
0 / 0 / 0
Регистрация: 03.06.2012
Сообщений: 3
03.06.2012, 19:44     Объяснить работу функции
Может кто объяснить работу функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void zagalovok()
{
  Node *t;
  head=new Node();
  t=head;
  int V;
  cout<<"Введите список элементов:\n ";
  cin>>V;
  while  (cin.good())
  {   t->next = new Node();
     t = t->next; t->elem = V;
        cin>>V;}
  t->next = head->next;
}
точнее что хранится в t=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
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
141
142
143
144
145
146
#include <iostream>
#include <time.h>
#include <stdlib.h>
 
using namespace std;
struct Node
{
    int elem;
    Node * next;
};
Node*R,*head;
//Ввод списка элемементов 
void zagalovok()
{
  Node *t;
  head=new Node();
  t=head;
  int V;
  cout<<"Введите список элементов:\n ";
  cin>>V;
  while  (cin.good())
  {   t->next = new Node();
     t = t->next; t->elem = V;
        cin>>V;}
  t->next = head->next;
}
void Vivod()
//вывод содержимого списка без заголовка
{
  Node *t;
  t = head->next;
  cout<<"Элементы списка: ";
  if  (t!=NULL)
  {
      cout<<(t->elem)<<" "; t = t->next;
      while  (t!=head->next)
    { cout<<t->elem << " "; t = t->next; }
  }
  else  cout<<"Список пуст";
  cout<<"\n";
}
//находим элемент в списке
Node *Find(int V)
{   Node *t;
    int help=1;
    R = NULL; t =head->next;
    if (t!=NULL){
    while (t->next!=head->next && R==NULL)
    { if  (help==V) R = t;
      else { t = t->next;help++;}
 
        if  (R==NULL && help==V)
            R = t;}}
    return R;
}
//добавление элементов
void Add ( int V)
    {
     Node *h;
  h =new Node();
  h->elem = V; h->next = R->next;
  R->next = h;
}
void Del()
//Удаление элемента  
{
  Node *z,*h;
  if  (R->next!=head->next)
  {
      h = R->next;
      R->elem = R->next->elem;
      R->next = R->next->next;
      delete h;}
  else  if  (R->next==R)
        { //если один элемент
           h = head->next; head->next = NULL;
          delete h;  }
       else
       {
         //удаление последнего эл-та
         z = head; h = head->next;
         while  (h!=R)
           { z = h; h = h->next; }
         z->next = z->next->next;
         delete h;
        }}
//Mеню
int main()
{ 
  int V;
  char ch;
    setlocale(LC_ALL, "Russian_Russia.1251");   
    zagalovok();
    cin.clear();
    cin.ignore(255, '\n');
    while(1)
    {
        Vivod();
   cout << "Меню" << endl;
        cout << "1 - Добавление" << endl;
        cout << "2 - Удаление" << endl;
        cout << "3 - Выход" << endl;
        cout << "==============" << endl;
    cin>>ch;
    cin.ignore(255, '\n');
    switch(ch){
    case '1':cout<<"Введите индекс элемента перед которым добавить новый элемент:";
        cin>>V;cin.ignore(255, '\n');
        if (!cin.good()) {
        cout << "Ошибка ввода";
        cin.clear();           
        cin.ignore(255, '\n');}
        else if (Find(V)==NULL) cout<<"Ошибка ввода\n";
        else
            cout<<"Введите новый элемент: ";
            cin>>V;
            cin.ignore(255, '\n');
            if (!cin.good()) {
            cout << "Ошибка ввода" ;
            cin.clear();           
            cin.ignore(255, '\n');
                            }
            else{Add(V);
            cout<<"Элемент добавлен нажмите Enter";}
            system("cls");
    break;
        case '2':cout<<"Введите удаляемый элемент элемента: ";
            cin>>V;cin.ignore(255, '\n');
            if (!cin.good()) {
            cout << "Ошибка ввода";
            cin.clear();           
            cin.ignore(255, '\n');
                            }
            else
            if (Find(V)==NULL) cout<<"Ошибка ввода\n";
            else {Del();cout<<"Элемент удален\n";}
                system("cls");
            break;
    case '3':
        return 0;
            break;
        default: {cout<<"Ошибка ввода";
                        system("cls");}}}
    cin.clear();
    return 0;
        }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru