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

Сортировка списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти такую прямую, по разные стороны от которой лежат по N/2 точек http://www.cyberforum.ru/cpp-beginners/thread144742.html
Помогите написать программу: Матрица N*2 задаёт координаты N точек плоскости (N-чётное число). Найти такую прямую, по разные стороны от которой лежат по N/2 точек
C++ Запуск exe Пользуюсь вижуалом, когда скомпилировал приложение .exe его могут запустить только те у кого есть компилятор, когда человек без компилятора запускает его, то ему выбивает ошибка бла бла бла неверные настройки, подскажите пожалуйста как это исправить??? http://www.cyberforum.ru/cpp-beginners/thread144718.html
Конвертирование char в int C++
Перевожу char в int, но на выходе неверное число, вот упрощений вариант: #include <iostream.h> main() { char c = '1'; int i = static_cast<int>(c); cout << i; }
C++ Конструктор копирования.
Нужно для задачи дописать конструктор копирования. Вся задача в условии почти решена. Собственно вот условие и как она должна выглядеть: http://s49.***********/i124/1006/66/038c80bef977.jpg Я вроде все сделал, но хз правильно или нет. И почему-то у меня в консоле числа выводятся от 1 до 9 по порядку, а в условии от 1 до 27 и через 3. Помогите плз! # include <iostream> using namespace...
C++ Builder OnDrawCell в StringGrid http://www.cyberforum.ru/cpp-beginners/thread144676.html
Пытаюсь закрасить ячейку в стринггриде. Часто встречающийся метод не помогает void __fastcall TForm_Bilet::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { if (State.Contains(gdSelected)) // îïðåäåëÿåì êîíêðåòíóþ ÿ÷åéêó { StringGrid1->Canvas->Brush->Color = clYellow; StringGrid1->Canvas->FillRect(Rect); }
C++ игра "лиса и курицы" дали как дополнительное задание на зачете, поэтому очень срочно :( помогите, плиз, написать алгоритм игры за компьютер на с++ (часть проги/дерево) условия игры: 1) дано поле размером n на m клеток 2) число лисиц =1; число куриц задается игроком 3) курицы управляются игроком; за лису ходит компьютер 4) раз в 3 хода курица рожает курицу 5) лиса либо просто ходит на пустую клетку, либо ест... подробнее

Показать сообщение отдельно
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
15.06.2010, 10:07     Сортировка списка
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
#include<iostream>
#include<conio.h>
using namespace std; 
struct node
{
    int num;
    node* next;
};
 
node* toList(node*,int);
node* fromList(node*, int);
void printList(node*);
void preobr(node*);
 
void main()
{
    int what,i,n;
    node* head=0;
     
    cout<<"innput n=";
    cin>>n;
    cout<<endl;
     
    cout<<"input all what"<<endl;
    for(i=1;i<=n;i++)
    {
        cin>>what;
        head=toList(head,what);
    }
     
    printList(head);
    preobr(head);
    getch();
}
 
node* toList(node* head, int num)
{
    node* pv=new node;
     
    pv->num=num;
    pv->next=0;
    if (head)
    {
        node* cur=0;
        if(head->num> pv->num)
        {
            pv->next=head;
            head=pv;
        }
        else
        {
        cur=head;
        while((cur->next)&& (cur->next->num < pv->num))
          cur=cur->next;
        pv->next=cur->next;
        cur->next=pv;
        }
    }
    else
        head=pv;
    return head;
}
node* fromList(node* head,int num)
{
    int prdel;
    node* erased=0;
    node* cur=0;
    node* buf=new node;
    buf->num=num;
    buf->next=0;
    if((head->num)==(buf->num))
    {
        erased=head;
        head=head->next;
        delete erased;
    }
    else
    {
        cur=head;
        erased=cur->next;
        prdel=0;
        do
        {
            if(buf->num==erased->num)
            {
                cur->next=erased->next;
                delete erased;
                prdel=1;
            }
            else
            {
                cur=erased;
                erased=cur->next;
            }
        }
 
        while ((prdel==0) ||(erased!=0));
    }
    return head;
}
 
void preobr(node* head)
{
    node *pv=head;
    node *max=head, *q, *pr;
    while (pv->next)
    {
        pr=pv;
        pv=pv->next;
        if (pv->num>max->num)
            max=pv;
    }
    cout<<"max: "<<max->num<<endl;
    pv=head;
    if (max==pv)
    {
        cout<<"Rezultat: \n";
        printList(head);
        return;
    }
    pr->next=head;
    max->next=pv->next;
    pv->next=NULL; //в вашем случае максимальный будет всегда последним
    head=max;
    cout<<"Rezultat: \n";
    printList(head);
}
 
void printList(node* head)
{
    node *pv=head;
    if(!pv)
    cout<<"List is nil\n";
    else
    while(pv)
    {
        cout<<"="<<pv->num<<endl;
        pv=pv->next;
    }
}
Хотя даже не обязательно искать масимальный - он будет последним в отсортированном массиве)
 
Текущее время: 17:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru