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

Разбиение списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массивы: Определить частное от деления суммы положительных элементов массива на модуль суммы отрицательных элементов http://www.cyberforum.ru/cpp-beginners/thread713229.html
Всем привет, учусь в 9-ом классе. Помогите решить 3 задачи, пожалуйста. 1) Известны данные о количестве осадков, выпавших за каждый месяц года. Найти общее число осадков, выпавших в марте, июне, сентябре и декабре. Определить частное от деления суммы положительных элементов массива на модуль суммы отрицательных элементов. P.S. Заранее спасибо!
C++ Определить сколько раз встречается в строке самое длинное слово дана строка, содержащий текст на русском языке. Определить сколько раз встречается в ней самое длинное слово. http://www.cyberforum.ru/cpp-beginners/thread713211.html
Найти все пары близнецов из отрезка C++
Два простых числа - близнецы, если они отличаются на 2 (н.п. 41 и 43). Найти все пары близнецов из отрезка. Программу я написал, но есть одна ошибка: невозможно преобразовать параметр 1 из 'int **' в 'int * Помогите ее решить. Вот сам код: #include <iostream> using namespace std; #include <conio.h> void pr (int*,int*);
Собственная строка C++
Написал простенький класс реализующий часть возможностей string // //GetLength() // int AsciiString::GetLength() const { return size; }
C++ Чего не хватает в программе? http://www.cyberforum.ru/cpp-beginners/thread713126.html
Здравствуйте уважаемые форумчане. Есть программа, которую я сделал, вот код: Код C++ #include <iostream> * using namespace std; * double function(double a, double b, double c, double x) {
C++ Проблемы с ответом Что является не легальным для class Pet { public: virtual void print( ); string name; private: }; подробнее

Показать сообщение отдельно
СергейАС
1 / 1 / 1
Регистрация: 02.02.2012
Сообщений: 73
29.11.2012, 13:56     Разбиение списка
Здравствуйте!!! У меня такая проблемка: заданы 2 списка с одинаковым числом элементов. Разбить первый список на два подсписка, отнеся к первому подсписку элементы со значением, меньшим значения соответствующего элемента второго списка. У меня есть набросок кода, в котором ввод работает нормально, а вот разбиение не совсем: вместо списков отображаются нули.
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
#include "stdafx.h"
#include <list>
#include "iostream"
#include <stdio.h>
#include <conio.h>
 
 
using namespace System;
 
typedef int ListElement;
 
struct list
{
    ListElement element;
    list* next;
    list* pred;
};
 
list* sp1_create(int n);
list* sp2_create(int n);
void prn(list*L);
 
int main()
{
    int n;
    list* L1;
    list* L2;
    list* psp1, *psp2, *start1=0,*start2=0;
    psp1 = new list();
    psp2 = new list();
    Console::WriteLine(L"Введите размер списков:");
    scanf("%d",&n);
    if(n)
    {
        L1=sp1_create(n);
        L2=sp2_create(n);
        Console::WriteLine(L"Полученные списки:");
        prn(L1);
        prn(L2);
    }
    else
        Console::WriteLine(L"Списки пусты!");
    L1=start1;
    L2=start2;
    while(L1 && L2)
    {
        if(L1<L2)
        {
            psp1->next=L2;
            psp2->next=L1;
            L1=L1->next;
            L2=L2->next;
        }
        else
        {
            psp2->next=L2;
            psp1->next=L1;
        }
    }
    prn(psp1);
    prn(psp2);
    system("Pause");
    return 0;
}
 
list* sp1_create(int n)
{
 
   list *start,*new_link,*end;
 
    end = start = NULL;
    for (int i = 0; i < n; i++)
    {
        new_link = new list();
        Console::WriteLine(L"Введите элемент списка №1:");
        scanf("%d",&new_link->element);
        if (!i)
            { 
               start = end = new_link;
               end->pred=start->pred=NULL;
            }
        else
        {
            end->next = new_link;
            end->next->pred =end;
            end = end->next;
            
        }
    }
     end->next = NULL;
     end = end->next;
    return start;
}
 
list* sp2_create(int n)
{
 
   list *start,*new_link2,*end;
 
    end = start = NULL;
    for (int i = 0; i < n; i++)
    {
        new_link2 = new list();
        Console::WriteLine(L"Введите элемент списка №2:");
        scanf("%d",&new_link2->element);
        if (!i)
            { 
               start = end = new_link2;
               end->pred=start->pred=NULL;
            }
        else
        {
            end->next = new_link2;
            end->next->pred =end;
            end = end->next;
            
        }
    }
     end->next = NULL;
     end = end->next;
    return start;
}
 
void prn(list* L)
{ 
    for (; L; L=L->next)
    std::cout <<L->element << ' ';
  std::cout << '\n';
 
}
Подскажите как исправить эту неприятность. Благодарю!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru