15 / 15 / 7
Регистрация: 08.04.2012
Сообщений: 133
1

Список: Взять исходный список SP и создать два новых списка SP1 и SP2. SP1 содержит нечетные узлы, а SP2 – четные

16.04.2013, 00:02. Показов 1277. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Что-то карета не вывезла и превратилась в тыкву.
  1. не могу понять почему данные не записывают в SP2
  2. не понимаю почему в SP1 только последний элемент

Задача:
Взять исходный список SP и создать два новых списка SP1 и SP2. SP1 содержит нечетные узлы, а SP2 – четные


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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
typedef struct SP {
    int val;
    SP *next;
};
 
typedef struct SP1 {
    int val;
    SP1 *next;
};
typedef struct SP2 {
    int val;
    SP2 *next;
};
 
int main() {
    
    SP *first=NULL,*end=NULL, *list, *tmp;
    SP1 *first_SP1=NULL,*end_SP1=NULL,*chlist,;
    SP2 *first_SP2=NULL,*end_SP2=NULL,*nchlist;
    
    int n,i;
    
    printf("enter N:");
    scanf("%d",&n);
    
    system("cls");
    
    list=(SP*)malloc(sizeof(SP));
    
    printf("val [1]: ");
    scanf("%d",&list->val);
    first=list;
    list->next = end;
     
    if(list->val % 2 == 0) {
        chlist=(SP1*)malloc(sizeof(SP1));
        chlist->val = list->val;
        first_SP1 = chlist;
        chlist->next = end_SP1;   
    }     
    else { 
        nchlist=(SP2*)malloc(sizeof(SP2));
        nchlist->val = list->val;
        first_SP2 = nchlist;
        nchlist->next = end_SP2;  
    } 
    
    
    for (i = 1;i<n;i++) {
        list->next=(SP*)malloc(sizeof(SP));
        
        list=list->next;        
        
        printf("val [%d]: ",i+1);
        scanf("%d",&list->val);
        
        if(list->val % 2 == 0) {
            chlist->next=(SP1*)malloc(sizeof(SP1));
            chlist = chlist->next;
            chlist->val = list->val;
            first_SP1 = chlist;
            chlist->next = end_SP1;   
        }     
        else { 
            nchlist->next=(SP2*)malloc(sizeof(SP2));
            nchlist = nchlist->next;
            nchlist->val = list->val;
            first_SP2 = nchlist;
            nchlist->next = end_SP2;  
        } 
        list->next=end;
    }
        
    system("cls");
    printf("Список:\n");
    list = first;
    i=1;
    while(list!=NULL) {
        printf("val[%d] = %d\n",i,list->val);
        list=list->next;
        i++;
    }
    
    printf("\nСписок чётных:\n");
    chlist = first_SP1;
    i=1;
    while(chlist!=NULL){
        printf("val[%d] = %d\n",i,chlist->val);
        chlist=chlist->next;
        i++;
    }
    
    printf("\nСписок нечётных:\n");
    nchlist = first_SP2;
    i=1;
    while(chlist!=NULL){
        printf("val[%d] = %d\n",i,nchlist->val);
        nchlist=nchlist->next;
        i++;
    }
    
    getch();
    return 0;
}

Добавлено через 8 часов 37 минут
Не уж-то никто не знает (
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2013, 00:02
Ответы с готовыми решениями:

Написать функцию, которая использует исходный список L и создает два новых списка L1 и L2. L1 содержит нечетные числа, а L2 – четные
всем привет! ребят, вы не поможете с задачкой? Написать функцию, которая использует исходный...

Включить SP1 и SP2 в дистрибутив Windows Vista
Как это можно сделать? Для XP такая информация есть, для Vista что-то не нашлось.

Каким образом проходит обновление WS 2003 r2 sp1 на sp2?
На рабочей станции установлена операционка WS2003 r2 sp1, раньше это был сервер, теперь просто...

Как установить Касперского если sp1 пакет, без установке SP2
Реально просто может установить по другому?

2
...
1907 / 1326 / 966
Регистрация: 12.02.2013
Сообщений: 2,172
16.04.2013, 08:39 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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
typedef struct node_t
{
    int value;
    struct node_t *next;
}   TList;
 
//-----------------------------------------------------------------------------
TList* Push(TList** list, int value)
{
    TList* node = (TList*) malloc(sizeof(TList));
    node->value = value;
    node->next = *list;
 
    *list = node;
 
    return *list;
}
//-----------------------------------------------------------------------------
int Pop(TList** list)
{
    int value = 0;
 
    if (*list)
    {
        TList* node = *list;
        *list = (*list)->next;
        value = node->value;
        free(node);
    }
 
    return value;
}
//-----------------------------------------------------------------------------
void Clear(TList** list)
{
    while (*list)
    {
        Pop(list);
    }
}
//-----------------------------------------------------------------------------
void Print(TList* list)
{
    for (; list; list = list->next)
    {
        printf("%d ", list->value);
    }
    printf("\n");
}
//-----------------------------------------------------------------------------
TList* GetGenList(size_t count, int min, int max)
{
    TList* list = NULL;
 
    while (count--)
    {
        Push(&list, rand() % (max - min) + min );
    }
 
    return list;
}
//-----------------------------------------------------------------------------
void One2Two(TList** sp, TList** sp1, TList** sp2)
{
    int value;
 
    *sp1 = *sp2 = NULL;
 
    while (*sp)
    {
        value = Pop(sp);
 
        if (value % 2)
        {
            Push(sp1, value);
        }
        else
        {
            Push(sp2, value);
        }
    }
}
//-----------------------------------------------------------------------------
 
int main()
{
    srand(time(NULL));
 
    TList* sp = GetGenList(20, 10, 100);
 
    printf("sp:  ");
    Print(sp);
 
    TList* sp1;
    TList* sp2;
 
    One2Two(&sp, &sp1, &sp2);
 
    printf("sp1: ");
    Print(sp1);
 
    printf("sp2: ");
    Print(sp2);
 
    system("pause");
 
    Clear(&sp1);
    Clear(&sp2);
 
    return 0;
}
Список: Взять исходный список SP и создать два новых списка SP1 и SP2. SP1 содержит нечетные узлы, а SP2 – четные


Бинарник + исходник: program.7z
1
15 / 15 / 7
Регистрация: 08.04.2012
Сообщений: 133
16.04.2013, 12:09  [ТС] 3
Цитата Сообщение от anmartex Посмотреть сообщение
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
typedef struct node_t
{
    int value;
    struct node_t *next;
}   TList;
 
//-----------------------------------------------------------------------------
TList* Push(TList** list, int value)
{
    TList* node = (TList*) malloc(sizeof(TList));
    node->value = value;
    node->next = *list;
 
    *list = node;
 
    return *list;
}
//-----------------------------------------------------------------------------
int Pop(TList** list)
{
    int value = 0;
 
    if (*list)
    {
        TList* node = *list;
        *list = (*list)->next;
        value = node->value;
        free(node);
    }
 
    return value;
}
//-----------------------------------------------------------------------------
void Clear(TList** list)
{
    while (*list)
    {
        Pop(list);
    }
}
//-----------------------------------------------------------------------------
void Print(TList* list)
{
    for (; list; list = list->next)
    {
        printf("%d ", list->value);
    }
    printf("\n");
}
//-----------------------------------------------------------------------------
TList* GetGenList(size_t count, int min, int max)
{
    TList* list = NULL;
 
    while (count--)
    {
        Push(&list, rand() % (max - min) + min );
    }
 
    return list;
}
//-----------------------------------------------------------------------------
void One2Two(TList** sp, TList** sp1, TList** sp2)
{
    int value;
 
    *sp1 = *sp2 = NULL;
 
    while (*sp)
    {
        value = Pop(sp);
 
        if (value % 2)
        {
            Push(sp1, value);
        }
        else
        {
            Push(sp2, value);
        }
    }
}
//-----------------------------------------------------------------------------
 
int main()
{
    srand(time(NULL));
 
    TList* sp = GetGenList(20, 10, 100);
 
    printf("sp:  ");
    Print(sp);
 
    TList* sp1;
    TList* sp2;
 
    One2Two(&sp, &sp1, &sp2);
 
    printf("sp1: ");
    Print(sp1);
 
    printf("sp2: ");
    Print(sp2);
 
    system("pause");
 
    Clear(&sp1);
    Clear(&sp2);
 
    return 0;
}
Вложение 256737

Бинарник + исходник: Вложение 256738
Даже так) Спасибо огромное) буду разбираться)
0
16.04.2013, 12:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2013, 12:09
Помогаю со студенческими работами здесь

Где скачать пакеты обновлений SP1 SP2 для Windows XP (английская версия)?
Всем доброго время суток. С толкнулся с такой проблемой где можно скачать пакеты обновлений SP1 и ...

Создать два новых файла, первый из которых содержит четные числа из исходного файла, а второй — нечетные
Дан файл вещественных чисел. Создать два новых файла, первый из которых содержит четные числа из...

Создать два новых файла, первый из которых содержит четные числа из исходного файла, а второй — нечетные (в том же порядке)
1. Дан файл целых чисел. Создать два новых файла, первый из которых содержит четные числа из...

Устанавливается SP1 и VISTA а не устанавливается SP2 и SP3
Здравствуйте. У меня полтергейс.... Устанавливается SP1 и VISTA а не устанавливается SP2 и SP3......


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru