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

Двунаправленный список - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сложить 2 матрицы http://www.cyberforum.ru/cpp-beginners/thread390830.html
второе задание: сложить 2 матрицы. Очень надеюсь на вашу помощь!
C++ Пробелемы с copy Требуется написать это string Fam,pred; map <string, list<string> > data; list<string> all_stud; ifstream FS; FS.open(s); while(!FS.eof()) { FS >> Fam; http://www.cyberforum.ru/cpp-beginners/thread390829.html
Копирование строки с позиции C++
Можно ли скорировать строку в определенном месте и с ограниченым число в Си. Т.е. К примеру: привет, Вася! как дела? Должно быть скопировано "Вася" Как это сделать с помошью функций в библиотеле string.h? А то я не нашел в Интернете.
C++ Найти площади кругов, а также площадь кольца
Задания: 1) Даны два круга с общим центром и радиусами R1 и R2 (R1 > R2). Найти площади этих кругов S1 и S2, а также площадь S3 кольца, внешний радиус которого равен R1, а внутренний радиус равен R2: S1 = π•(R1)2, S2 = π•(R2)2, S3 = S1 – S2. В качестве значения π использовать 3.14. 2) Дано целое число. Вывести его строку-описание вида «отрицательное четное число», «нулевое число»,...
C++ Необработанное исключение в "0x00412b4a" в "kursovik.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000004". http://www.cyberforum.ru/cpp-beginners/thread390810.html
Программа компилируется нормально но потом на строчке MoveToEx(hdc,Mas.a]->x*20,Mas.a]->y*20,0); выдаёт ошибку Необработанное исключение в "0x00412b4a" в "kursovik.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000004". Помогите пожалуйста заранее спасибо. #include "stdafx.h" #include <windows.h> #include "resource.h" #include <string> #define MAXPOINTS 1000 int ko,key1=0;
C++ Дана квадратная матрица A порядка M Matrix13. Дана квадратная матрица A порядка M. Начиная с элемента A1,1, вы-вести ее элементы следующим образом («уголками»): все элементы первой строки; элементы последнего столбца, кроме первого (уже выведенного) элемента; оставшиеся элементы второй строки; оставшиеся элементы предпоследнего столбца и т. д.; последним выводится элемент AM,1. #include<iostream.h> Запрещено создавать темы с... подробнее

Показать сообщение отдельно
Konyahinzhenya
-23 / 1 / 0
Регистрация: 20.09.2011
Сообщений: 32
24.11.2011, 14:46     Двунаправленный список
Задание :
Группа людей стоит в кругу и каждый выбирает целое положительное число. Затем выбираются одно из их имен и положительное число n. Производится счет по часовой стрелке, начиная с человека с выбранным именем. При этом n-й человек исключается из круга. Выбранное этим человеком число используется для продолжения счета. Эти действия повторяются до тех пор, пока из всего круга остается только один человек. Определите порядок удаления людей из круга и имя оставшегося человека.


Я сделал, что удаляется всегда m-ый человек. Помогите доделать программу , что бы она была как по заданию...(тоесть что бы каждый человек загадывал число и именно на это число после его выбывания продолжался счет)
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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include <iostream>
using namespace std;
/*struct Titem
    {
    int n;
    Titem *next,*prev; // следующий, предыдущий
    } *first,*s,*p;    
*/
class Titem
{
  public:
         int n;
         Titem *next,*prev;
}*first,*s,*p;
 
 
int n,m;
 
void add_item(int v)     // функция добавления порядкового номера участника
    {
    Titem *p;  
    if (s==NULL && first==NULL)
        {
            s=new Titem;
            s->n = v; 
            s->next = NULL; 
            s->prev = NULL; 
            first=s;
        }
 
    else
        {
            p = new Titem;
            p->n = v;
            p->next=NULL;
            p->prev=s; 
            s->next=p; 
            s=p;
        }
    }
 
 main ()
    {
    int i;
    cout << "\nvvedite chislo  n ( chislo chelovek) ";
    cin  >> n;
 
    cout << "\nvvedite chislo  m ( vibirite cheloveka) ";
    cin  >> m;
 
    for (i=0; i<n; i++)    //zapuskaem function add_item
            add_item(i+1);
    
      s->next=first;         //zamukaem spisok
    first->prev=s;
 
    p=first; 
    for(i=0; i<n; i++)
        {
            cout << p->n << "  " ;  //vuvodim ishodnuy spsisok
            p=p->next;
        }
    cout << endl;
 
 
    s=first;
    while(n>1)               //Из списка с порядковыми номерами участников удаляем m-ый
                            //по счёту столько   раз, пока не останется один участник
                            //(после удаления    участника считать начинаем со следующего после удалённого)
        {
        p=s;
            for(i=1; i<m; i++)
                p=p->next;
            p->next->prev=p->prev; //Перед удалением m-ого элемента списка выстраивается свзь между предыдущим 
            p->prev->next=p->next;  //и следующим элементами списка
            s=p->next;
            delete p;
            n--;
        }
 
 
    cout << "nomer ostavsh cheloveka   " << s->n << endl;         //nomer ostavshejgosya elementa
 
    system("PAUSE");
    return 0;
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru