Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/40: Рейтинг темы: голосов - 40, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 13

Перемещение элементов односвязного списка

28.03.2013, 16:46. Показов 7847. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <stdio.h>
#include <conio.h>
void main()
{
    struct node
    {
        int inf;
        node*next;
    };
    printf ("Vvedite chislo elementov");
    int c;
    scanf("%d", &c);
    int a[100];
    for (int i=0; i < c; i++)
    {
        printf ("Vvedite %d element",i+1);
        scanf ("%d",&a[i]);};
    node*r;
    node*w;
    node*fr;
    node*er;
    fr=NULL;
    for (int i=0; i<=c; i++)
    {
        if(fr==NULL)
        {
            r=new node;
            r->inf=a[i];
            r->next=NULL;
            fr=r;
            er=r;}
        else
        {
            r=new node;
            r->inf=a[i];
            r->next=NULL;
            er->next=r;
            er=r;}};
    r=fr;
      while(r->next!=NULL)
        {printf("%d",r->inf);
        r=r->next;};
    while(r->next!=NULL) 
    {
        if(r->inf<0)
        {
            if(r==fr)
        
            {
                er->next=r;
                fr=r->next;
                r->next=NULL;
                er=r;}
            else
            {
                er->next=r;
                w->next=r->next;
                r->next=NULL;
                er=r;
            };
        };
        w=r;
        r=r->next;};
        r=fr;
        while(r->next!=NULL)
        {printf("%d",r->inf);
        r=r->next;};
        getch();}
Помогите, пожалуйста, найти ошибку в этом коде.
Цель: сделать так, чтобы отрицательные числа стояли после положительных. Обязательно использовать односвязный список.
Проблема: не перемещает отрицательные элементы (возможно ошибка с условием if(r->inf<0))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.03.2013, 16:46
Ответы с готовыми решениями:

Удаление элементов из односвязного списка списка
Привет всем знатокам, суровым программистам и профессионалам своего дела. Засел за реализацией списка и что то пока не могу понять. Задача...

Удаление нескольких элементов из односвязного списка
Всем привет! Собственно, сабж: есть односвязный список с повторяющимися элементами. Мне надо удалить определенные элементы. Есть...

Удаление элементов из односвязного списка (STL)
Здравствуйте, уважаемые форумчане! Помогите, пожалуйста, с контейнером forward_list&lt;int&gt; (именно с ним). Совсем запутался. Могу...

7
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
28.03.2013, 17:32
dude45, а не легче ограничиться тем, что положительные добавлять в начало, а отрицательные в конец?

Добавлено через 15 минут
dude45, вот как-то так

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
141
#include <iostream>
#include <locale>
using namespace std;
 
struct List
{
    int data;
    List *next;
};
 
class ListNode
{
    private:
        List *Head;
 
    public:
        ListNode()
        {
            Head = NULL;
        }
 
        ~ListNode()
        {
            List *temp = Head;
            List *cur = NULL;
 
            while(temp != NULL)
            {
                cur = temp -> next; 
                delete temp;
                temp = cur; 
            }
        }
 
        void addToBack(const int value)                 //добавление в конец
        {
            List *Ptr = new List;
            Ptr -> data = value;
 
            if(Head == NULL)
            {
                Head = Ptr;
                Ptr -> next = NULL;
            }
            else
            {
                List *temp = Head;
 
                while(temp -> next != NULL)
                    temp = temp -> next;
                
                temp -> next = Ptr;
                Ptr -> next = NULL;
            }
        }
 
        void addToFront(const int value)                    //добавление в начало
        {
            List *Ptr = new List;
            Ptr -> data = value;
 
            Ptr -> next = Head;
            Head = Ptr;
        }
 
        void delList(const int value)
        {
            List *tmp = Head;
            List *cur = NULL;
 
            if(Head != NULL)
            {
                if((Head -> data) == value)                 //если удаляем 1 элемент
                {
                    cur = Head -> next;
                    delete Head;
                    Head = cur;
                }
                else
                {
                    while((tmp != NULL) && (tmp -> data != value))
                    {
                        cur = tmp;
                        tmp = tmp -> next;
                    }
 
                    if(tmp -> next == NULL)                 //если элемент между
                    {                                       //1 и последним
                        delete tmp;
                        cur -> next = NULL;
                    }
                    else                                    //если элемент последний
                    {
                        cur -> next = tmp -> next;
                        delete tmp;
                    }
                }
            }
        }
 
        void showList()
        {
            List *temp = Head;
 
            if(Head != NULL)
            {
                while(temp != NULL)
                {
                    cout << temp -> data << " ";
                    temp = temp -> next;
                }
 
                cout << "\n";
            }
            else
                wcout << L"Список пуст!\n";
        }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    wcout.imbue(locale(".866"));
 
    ListNode Universal;
    int value;
 
    for(int i = 0; i < 10; ++i){
        wcout << L"Введите число: ";
            cin >> value;
 
        if(value >= 0)
            Universal.addToFront(value);
        else
            Universal.addToBack(value);
 
        Universal.showList();
    }
 
    cout << "\n\n";
    return 0;
}
Добавлено через 4 минуты
Цитата Сообщение от dude45 Посмотреть сообщение
node*r;
* * node*w;
* * node*fr;
* * node*er;
если по хорошему, это должно быть не в теле цикла... вынесите это.
0
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 13
28.03.2013, 17:33  [ТС]
yoghurt92, А можно как-то без использования классов? Можно ли это реализовать только с помощью: структур, функций, циклов и условного оператора?
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
28.03.2013, 17:51
dude45, очень непонятный код, я так понял вы сначала заполняете список, а потом сортируете... лучше добавлять элементы и сразу сортировать, положительные в начало, отрицательные в конец, мороки меньше

Добавлено через 22 секунды
dude45, можно

Добавлено через 9 минут
dude45,

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
// obr.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <locale>
using namespace std;
 
struct List
{
    int data;
    List *next;
};
  
void DeleteList(List *_Head)
{
    List *temp = _Head;
    List *cur = NULL;
 
    while(temp != NULL)
    {
        cur = temp -> next; 
        delete temp;
        temp = cur; 
    }
}
 
List *addToBack(List *_Head, const int value)                 //добавление в конец
{
    List *Ptr = new List;
    Ptr -> data = value;
 
    if(_Head == NULL)
    {
        _Head = Ptr;
        Ptr -> next = NULL;
    }
    else
    {
        List *temp = _Head;
 
        while(temp -> next != NULL)
            temp = temp -> next;
                
        temp -> next = Ptr;
        Ptr -> next = NULL;
    }
 
    return _Head;
}
 
List *addToFront(List *_Head, const int value)                    //добавление в начало
{
    List *Ptr = new List;
    Ptr -> data = value;
 
    Ptr -> next = _Head;
    _Head = Ptr;
 
    return _Head;
}
 
void delList(List *_Head, const int value)
{
    List *tmp = _Head;
    List *cur = NULL;
 
    if(_Head != NULL)
    {
        if((_Head -> data) == value)                 //если удаляем 1 элемент
        {
            cur = _Head -> next;
            delete _Head;
            _Head = cur;
        }
        else
        {
            while((tmp != NULL) && (tmp -> data != value))
            {
                cur = tmp;
                tmp = tmp -> next;
            }
 
            if(tmp -> next == NULL)                 //если элемент между
            {                                       //1 и последним
                delete tmp;
                cur -> next = NULL;
            }
            else                                    //если элемент последний
            {
                cur -> next = tmp -> next;
                delete tmp;
            }
        }
    }
}
 
void showList(List *_Head)
{
    List *temp = _Head;
 
    if(_Head != NULL)
    {
        while(temp != NULL)
        {
            cout << temp -> data << " ";
            temp = temp -> next;
        }
 
        cout << "\n";
    }
    else
        wcout << L"Список пуст!\n";
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    wcout.imbue(locale(".866"));
 
    List *Head = NULL;
    int value;
 
    for(int i = 0; i < 10; ++i){
        wcout << L"Введите число: ";
            cin >> value;
 
        if(value >= 0)
            Head = addToFront(Head, value);
        else
            Head = addToBack(Head, value);
 
        showList(Head);
    }
 
    DeleteList(Head);
 
    cout << "\n\n";
    return 0;
}
Добавлено через 7 минут
dude45, вот еще вариант

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
// obr.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;
 
struct Print{
    template <typename T>
    void operator() (T &elem)
    {
        cout << elem << ' ';
    }
};
 
template <typename T>
void addToFront(list<T> &_coll, const T value)      
{
    _coll.push_front(value);
}
 
template <typename T>
void addToBack(list<T> &_coll, const T value)      
{
    _coll.push_back(value);
}
 
template <typename T>
void dellist(list<T> &_coll)
{
    _coll.pop_front();
}
 
template <typename T>
void showlist(list<T> &_coll)
{
    if(!_coll.empty())
    {
        for_each(_coll.begin(), _coll.end(), Print());
        cout << endl;
    }
    else
        wcout << L"Список пуст!\n";
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    wcout.imbue(locale(".866"));
 
    list<int> coll;
    int value;
 
    for(int i = 0; i < 10; ++i){
        wcout << L"Введите число: ";
            cin >> value;
 
        if(value >= 0)
            addToFront(coll, value);
        else
            addToBack(coll, value);
 
        showlist(coll);
    }
 
    if(coll.empty())
        coll.clear();
 
    cout << "\n\n";
    return 0;
}
1
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 13
28.03.2013, 17:54  [ТС]
yoghurt92, Спасибо за идею сортировки элементов до записи в список, но в коде я ничего не понял Буду делать по-своему.
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
28.03.2013, 17:57
dude45, почему ничего не поняли? давайте объясню.
0
1 / 1 / 0
Регистрация: 26.10.2012
Сообщений: 13
28.03.2013, 18:04  [ТС]
yoghurt92, Я просто только начал изучать С++ и не знаю многих функций (или чего-то ещё), которые вы использовали.
Я попытался переделать, но опять не получается.
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
#include <stdio.h>
#include <conio.h>
void main()
{
    struct node
    {
        int inf;
        node*next;
    };
    printf ("Vvedite chislo elementov");
    int c,j=0,k=0;
    scanf("%d", &c);
    int a[100],b[100],d[100];
    for (int i=0; i < c; i++)
    {
        printf ("Vvedite %d element",i+1);
        scanf ("%d",&a[i]);
        if(a[i]<0)
        {
        b[i]=a[i];
        j++;}
        else
        {
            d[i]=a[i];
            k++;};}
     
    node*r;
    node*w;
    node*fr;
    node*er;
    fr=NULL;
    for (int i=0; i<j; i++)
    {
        if(fr==NULL)
        {
            r=new node;
            r->inf=b[i];
            r->next=NULL;
            fr=r;
            er=r;}
        else
        {
            r=new node;
            r->inf=b[i];
            r->next=NULL;
            er->next=r;
            er=r;}};
    r=er;
    for(int i=0;i<k;i++)
    {r=new node;
    r->inf=d[i];
    er->next=r;
    r->next=NULL;
    er=r;};
    r=fr;
      while(r->next!=NULL)
        {printf("%d",r->inf);
        r=r->next;};
    
        getch();
       }
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
28.03.2013, 19:52
dude45, вот вам написал

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
141
142
143
144
145
146
// obr.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <locale>               //для работы с юникод строками
using namespace std;
 
struct List
{
    int data;                   //данные(список состоит из последоват целых)
    List *next;                 //указатель на следующий элемент списка
};
  
void DeleteList(List *_Head)        //функция освобождения выделенной памяти
{
    List *temp = _Head;             //указываем на начало списка
    List *cur = NULL;               //промежуточная переменная
 
    while(temp != NULL)             //пока список не пуст
    {
        cur = temp -> next;         //указываем на след после удаляемого
        delete temp;                //удялем элемент
        temp = cur;                 //текущий равен последующему
    }
}
 
List *addToBack(List *_Head, const int value)                 //добавление в конец
{
    List *Ptr = new List;                   //выделяем память под новый элемент
    Ptr -> data = value;                        //инициализируем
 
    if(_Head == NULL)                   //если список пуст
    {
        _Head = Ptr;                    //голова равна новому эл-ту
        Ptr -> next = NULL;             //следующего нет
    }
    else                                        //если список не пуст
    {
        List *temp = _Head;                     //указываем на начало списка
 
        while(temp -> next != NULL)             //проходим по списку до конца
            temp = temp -> next;
                
        temp -> next = Ptr;                 //последний указывает на новый
        Ptr -> next = NULL;                 //новый становится последним
                                            //(NULL служет признаком конца списка)
    }
 
    return _Head;                           //возвращаем указатель на начало списка
}
 
List *addToFront(List *_Head, const int value)             //добавление в начало
{
    List *Ptr = new List;                       //выделяем память под новый элемент
    Ptr -> data = value;                            //инициализируем
 
    Ptr -> next = _Head;                            //новый указывает на начало
    _Head = Ptr;                                //новый становится головой списка
 
    return _Head;                           //возвращаем указатель на начало списка
}
 
void delList(List *_Head, const int value)          //удаляем элемент списка
{
    List *tmp = _Head;                      //указываем на начало списка
    List *cur = NULL;                       //промежуточная переменная
 
    if(_Head != NULL)                       //если список не пуст
    {
        if((_Head -> data) == value)                 //если удаляем 1 элемент
        {
            cur = _Head -> next;            //промежуточный равен второму эл-ту
            delete _Head;               //удаляем первый
            _Head = cur;                //первый равен второму
        }
        else                        //если удаляем не первый элемент
        {
            while((tmp != NULL) && (tmp -> data != value))      
                //идем пока не найдем или пока список не закончится
            {
                cur = tmp;                      //предыдущий элемент
                tmp = tmp -> next;              //текущий элемент
            }
 
            if(tmp -> next == NULL)                 //если элемент между 1 и последним
            {      
                cur -> next = tmp -> next;          //предыдущий указывает на следующи
                                                    //после удаляемого
                delete tmp;                         //удалячем
            }
            else                                    //если элемент последний
            {
                delete tmp;                         //удалячем
                cur -> next = NULL;                 //предпоследний указывает на NULL
                                                    //т.е. после стал последним
            }
        }
    }
}
 
void showList(List *_Head)              //выводим список на консоль
{
    List *temp = _Head;                 //указатель на начало списка
 
    if(_Head != NULL)                   //если список не пуст
    {
        while(temp != NULL)             //идем по списку
        {
            cout << temp -> data << " ";        //выводим текущий элемент
            temp = temp -> next;                    //переходим на следующий
        }
 
        cout << "\n";
    }
    else
        wcout << L"Список пуст!\n";
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    wcout.imbue(locale(".866"));            //для вывод на консоли кириллицы
 
    List *Head = NULL;                      //список изначально пуст
    int value;                              //переменная для инициализации
 
    for(int i = 0; i < 10; ++i){            //вводим 10 элементов и заполняем список
        wcout << L"Введите число: ";
            cin >> value;
 
        if(value >= 0)                          //если положит
            //добюавляем в начало и возвращаем указатель на начало списка
            Head = addToFront(Head, value);     
        else
            //иначе добавляем в конец списка и возвращаем указатель на начало списка
            Head = addToBack(Head, value);
 
        showList(Head);                 //выводим список каждый раз после
                                        //добавления нового элемента
    }
 
    DeleteList(Head);                   //удаляем все что выделили
 
    cout << "\n\n";
    return 0;
}
Добавлено через 21 минуту
dude45, вот вашим методом написал, извините что не ищу у вас, уж очень плохо написали, читать трудно...

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
// obr.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <locale>               //для работы с юникод строками
#include <stdio.h>
#include <conio.h>
 
struct List
{
    int inf;
    List *next;
};
 
void main()
{
    int value, size = 5;
 
    List *head = NULL, *ptr, *cur;
 
    /*инициализируем список*/
    for (int i=0; i < size; ++i)
    {
        printf ("Vvedite %d element: ", i + 1);
        scanf ("%d", &value);
        
        ptr = new List;
        ptr -> inf = value;
 
        if(head == NULL)
        {
            head = ptr;
            ptr -> next = NULL;
        }
        else
        {
            if(ptr -> inf >= 0)
            {
                ptr -> next = head;
                head = ptr;
            }
            else
            {
                cur = head;
                while(cur -> next != NULL)
                    cur = cur -> next;
 
                cur -> next = ptr;
                ptr -> next = NULL;
            }
        }
 
        /*выводим список*/
        cur = head;
        while(cur != NULL){
            printf("%d ",cur -> inf);
            cur = cur -> next;
        }
 
        printf("\n");
    }
 
}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.03.2013, 19:52
Помогаю со студенческими работами здесь

Найти ошибку в удалении элементов из односвязного списка
Нужно удалить элемент из списка. Удаляю элемент не по позиции а по значению (задаю это значение). И вот в чем проблема, если например в...

Удаление повторяющихся элементов из односвязного списка forward_list
Есть односвязный список из 6 элементов, некоторые из которых повторяются. Удалить первый повторяющийся элемент и удалить его. Язык c++

Функция: дублирование нечетных элементов односвязного списка
Доброй ночи, ребятки такая проблема, нужно создать функцию для дублирования нечетных элементов односвязного списка(после каждого нечетного...

Циклический сдвиг односвязного списка, организованного структурами, на N элементов вправо/влево
Подскажите, как лучше всего циклически сдвинуть односвязный список, организованный структурами, на N элементов вправо/влево, может ему...

Перемещение элементов внутри Списка
Доброго времени суток. Возникла проблема. Был создан список и нужно поменять местами первый и последний элемент списка. Спустя 3 часа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru