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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти такую прямую, по разные стороны от которой лежат по N/2 точек http://www.cyberforum.ru/cpp-beginners/thread144742.html
Помогите написать программу: Матрица N*2 задаёт координаты N точек плоскости (N-чётное число). Найти такую прямую, по разные стороны от которой лежат по N/2 точек
C++ Является ли данное слово палиндромом? Помогите написать прогу, определяющую является ли данное слово палиндромом, с помощью рекурсии. Без рекурсии эта функция выглядит примерно так: bool Palindrom(string s) { int i = 0, j=s.length()-1; for (; i < j; i++, j--) if (s!=s) return false; return true; } а как сделать через рекурсию, я никак не сооброжу. http://www.cyberforum.ru/cpp-beginners/thread144725.html
C++ Запуск exe
Пользуюсь вижуалом, когда скомпилировал приложение .exe его могут запустить только те у кого есть компилятор, когда человек без компилятора запускает его, то ему выбивает ошибка бла бла бла неверные настройки, подскажите пожалуйста как это исправить???
Конвертирование char в int C++
Перевожу char в int, но на выходе неверное число, вот упрощений вариант: #include <iostream.h> main() { char c = '1'; int i = static_cast<int>(c); cout << i; }
C++ Конструктор копирования. http://www.cyberforum.ru/cpp-beginners/thread144704.html
Нужно для задачи дописать конструктор копирования. Вся задача в условии почти решена. Собственно вот условие и как она должна выглядеть: http://s49.***********/i124/1006/66/038c80bef977.jpg Я вроде все сделал, но хз правильно или нет. И почему-то у меня в консоле числа выводятся от 1 до 9 по порядку, а в условии от 1 до 27 и через 3. Помогите плз! # include <iostream> using namespace...
C++ Написать рекурсивную функцию, которая определяет, является ли число числом Фибоначчи Microsoft Visual C++ Написать рекурсивную функцию которая определяет, является ли число, числом Фибоначи. нужно написать программу на начальном уровне прохождения СИ!) ну в плане того что ненадо библиотеки iostream и т.д)! мы ето еще непроходили)! пожалуйста решить задачку!Или обьясните хоть как делать)! может пойму Добавлено через 3 часа 21 минуту :) помогите добрые люди)! подробнее

Показать сообщение отдельно
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;
    }
}
Хотя даже не обязательно искать масимальный - он будет последним в отсортированном массиве)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru