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

Что за ошибка и почему? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чтение из txt файла http://www.cyberforum.ru/cpp-beginners/thread836164.html
есть файл. в файле записано следующие: ---------------------------------------DATABASE---------------------------------------- Date Delivery: 12.05.13 Serial number: 95584812 Variant cutting: saw...
C++ Печать предложения в обратном порядке Дано предложение в файле. Нужно вывести его в обратном порядке. Ребят, тут много тем с похожими вопросами, но того что надо не нашел, подскажите как записать некоторое предложение из файла в какой то... http://www.cyberforum.ru/cpp-beginners/thread836161.html
разработка рекурсивных функций, не возвращающих значений ( рекурсивную функцию для нахождения n-го члена и суммы n первых членов прогрессии) C++
помогите пожалуйста разобраться с задачей: Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения n-го члена и суммы n первых членов прогрессии.
C++ Какой код у тире?
Которое –. '\n' - другой символ.
C++ Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым http://www.cyberforum.ru/cpp-beginners/thread836125.html
Добрый день, помогите пожалуйста сделать вот такую программу. Даны натуральное k , символьный файл f и текстовый файл f1 . Файл f содержит 30 слов , каждое из которых будем называть ключевым....
C++ Обнаружить в заданном тексте Обнаружить в заданном тексте слова, содержащие более 3-х гласных букв, сначала распечатать их, а потом заменить гласные буквы символом "-" и снова распечатать их. подробнее

Показать сообщение отдельно
Kiragaz
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 13
13.04.2013, 11:08  [ТС]
вот ещё один вариант добавления в середину если выбирать добавление перед элементом зацикливается, а если после то выбивает ошибку
и тут я не могу пока сообразить как добавлять обе части информационного поля
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
//добовление элемента в список
 cout << " Введите элемент для добавления : " ;
            cin >> lmnt;
            cout << endl;
            if (Empty() == 1 )
            {
                AddAft(lmnt,0);
                cout << " Элемент добавлен " << endl;
            } else
   cout << "1 - Добавить перед " << endl << "2 - Добавить после  " << endl << "Ваш выбор:  " ;
             cin >> ans2;
            switch(ans2)
             {
            case '1' :
                 cout << " Перед каким элементом добавить: ";
                 cin >> Number;
                AddAft(lmnt,Number);
                 cout<<" Элемент добавлен "<< endl; break;
            case '2' :
                 cout << " После какого элемента добавить: ";
                 cin >> Number;
                AddBef(lmnt,Number);
                 cout << " Элемент добавлен " << endl; break;
            default :
                     cout << " Ошибка, такого пункта нету"<< endl; break;
             }
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
//==============================================================================
int Empty()
{
    if ( Head->Next==Head && Head->Prior == Head ) return 1;
    else return 0;
}
//==============================================================================
Double_List *SearchB(int Number)
{
   Double_List *lmnt=Head->Next;
    while((lmnt!=Head) && (lmnt->Data!=Number))
    {
        lmnt = lmnt->Prior;
        ++prdx;
    }
    if (lmnt == Head)
        return lmnt;
    else
        return NULL;
}
 
//==============================================================================
void AddAft(int Number, int point)
{
        Double_List* lmnt= (Double_List*)malloc(sizeof(Double_List));
 
        lmnt->Next=Head;
        lmnt->Prior=Head;
        lmnt->Data=Number;
 
        Head->Next=lmnt;
        Head->Prior=lmnt;
 
    Double_List *Current=Search(point);
 
    if (!Current)
   {
 
 
        Double_List* lmnt= (Double_List*)malloc(sizeof(Double_List));
 
        lmnt->Next=Current->Next;
        lmnt->Prior=Current;
        lmnt->Data=Number;
 
        Current->Next->Prior=lmnt;
        Current->Next=lmnt;
 return;
   }
 
}
 
//==============================================
void AddBef(int Number, int point)
{
  Double_List *Current = SearchB(point);
 
    if (Current!=NULL)
    {
      Double_List *lmnt=(Double_List*)malloc(sizeof(Double_List));
 
        lmnt->Data=Number;
        lmnt->Next=Current;
        lmnt->Prior=Current->Prior;
 
        Current->Prior->Next=lmnt;
        Current->Prior=lmnt;
            }
 
}
Добавлено через 26 минут
А если так писать то ругается на строку вызова подпрограммы в мэйне
вот такие ошибки
[C++ Error] Unit1.cpp(294): E2034 Cannot convert 'int' to 'const char *'
[C++ Error] Unit1.cpp(294): E2342 Type mismatch in parameter 'performer' (wanted 'const char * const', got 'char')
C++
1
2
3
4
5
6
7
8
9
main()
{
cout<<"Куда всталлять: ";
cin>>Number;
cout<<"Что вставлять: ";
cin >>Data>>performer;
Insert_Item_Double_List(Head,Number,Data,performer);
Print_Double_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
//вставка элемента с заданным номером в двунаправленный список
Double_List* Insert_Item_Double_List(Double_List* Head,int Number,int Data,const char* const performer){
  Number--;
  Double_List *NewItem=new Double_List();
  NewItem->Data=Data;
  strcpy(NewItem->performer,performer);
  NewItem->Prior=NULL;
  NewItem->Next = NULL;
  if (Head == NULL) {//список пуст
    Head = NewItem;
  }
  else {//список не пуст
    Double_List *Current=Head;
    for(int i=1; i < Number && Current->Next!=NULL; i++)
    Current=Current->Next;
    if (Number == 0){ //вставляем новый элемент на первое место
      NewItem->Next = Head;
      Head->Prior = NewItem;
      Head = NewItem;
    }
    else {//вставляем новый элемент на непервое место
      if (Current->Next != NULL) Current->Next->Prior = NewItem;
      NewItem->Next = Current->Next;
      Current->Next = NewItem;
        NewItem->Prior = Current;
      Current = NewItem;
    }
  }
  return Head;
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru