Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Anytka1
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 4
#1

Скопировать все отрицательные элементы исходного в новый список

20.05.2013, 17:30. Просмотров 809. Ответов 6
Метки нет (Все метки)

Однонаправленный линейный список, скопировать все отрицательные элементы в новый список.
Просто создаю список эл-тов.
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
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#define N 5
struct List
{ int data;
List* next;};
List *root,*q,*p, *t;
int main()
{
    int i;
    q=new List;
    cout <<"vvedite chisla:\n";
    cin >>q->data;
    root = q;
    for (i=1; i < N; i++)
    {
        q->next=new List;
        q = q ->next;
        cin >>q->data;      
        q->next=NULL;
    }
    q = root;
    cout <<"Data:";
    while (q!=NULL)
    {
        cout <<" "<<q->data;
        q=q->next;
    }
    q = root;
    t = q;
    q = root;
    cout << "\nresult:";
        while (q!=NULL)
        {
            cout <<" "<<q->data;
            q=q->next;
        }
        cout <<"\n";
    system("pause");
    return 0;
    getch();
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2013, 17:30
Ответы с готовыми решениями:

В новый массив скопировать элементы исходного массива, стоящие до первого вхождения элемента со значением 0
1.Предусмотреть два варианта ввода: с клавиатуры и генерацией случайных значений. Сформировать...

Переписать в новый целочисленный массив все элементы исходного с порядковыми номерами, кратными трем
Дан целочисленный массив A размера N&lt;=15. Переписать в новый целочисленный массив B все элементы с...

Скопировать в новый файл те строки исходного, которые начинаются и оканчиваются на одну и ту же букву
Доброго времени суток. Помогите решить задание. 1)Программа на СИ должна создавать папку temp в...

Сформировать из исходного новый массив, отбросив четные элементы
Имеется массив чисел.Сформировать из него новый массив отбросив четные элементы. Вывести на экран....

Найти ненулевые элементы исходного массива и записать их в новый массив
Ввести с клавиатуры масcив A. Найти ненулевые элементы массива и записать их в новый массив B

6
anmartex
...
1709 / 1202 / 909
Регистрация: 12.02.2013
Сообщений: 1,978
21.05.2013, 08:35 #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
#include <stdio.h>
#include <stdlib.h>
 
typedef struct node_t
{
   int data;
   struct node_t* next;
}  TList;
 
int main()
{
   TList* list = NULL;
   TList* newlist = NULL;
   TList* node, * tmp;
   int data;
 
   printf("input numbers: ");
   while (scanf("%d", &data))
   {
      node = (TList*) malloc(sizeof(TList));
      node->data = data;
      node->next = list;
      list = node;
   }
 
   printf("source: ");
   for (node = list; node; node = node->next)
   {
      printf("%d ", node->data);
   }
   printf("\n");
 
   for (node = list; node; node = node->next)
   {
      if (node->data < 0)
      {
         tmp = (TList*) malloc(sizeof(TList));
         tmp->data = node->data;
         tmp->next = newlist;
         newlist = tmp;
      }
   }
 
   printf("result: ");
   for (node = newlist; node; node = node->next)
   {
      printf("%d ", node->data);
   }
   printf("\n");
 
   system("pause");
   return 0;
}
Скопировать все отрицательные элементы исходного в новый список


Для завершения ввода необходимо ввести любой не числовой символ.
2
Anytka1
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 4
21.05.2013, 14:39  [ТС] #3
Спасибо большое =*
0
AndrewS
0 / 0 / 1
Регистрация: 09.10.2014
Сообщений: 36
16.11.2014, 13:41 #4
А можно ли для завершения ввода чисел не вводить любой не числовой символ, а нажатием Enter, а сами числа вводить через пробел?


PS. Где в коде описывается это условия, что после ввода не числового символа закончить ввод?
0
anmartex
...
1709 / 1202 / 909
Регистрация: 12.02.2013
Сообщений: 1,978
16.11.2014, 15:19 #5
Первое, что в голову взбрело. Если после последней цифры будет нажат enter, то всё сработает.
C
1
2
3
4
5
6
7
8
9
10
// ...
char ch;
// ...
while (scanf("%d%c", &data, &ch) == 2) {
    // ...
    if (ch == '\n') {
            break;
    }
}
// ...
0
AndrewS
0 / 0 / 1
Регистрация: 09.10.2014
Сообщений: 36
16.11.2014, 16:02 #6
C
1
2
3
4
5
6
7
8
9
10
11
// ...
char ch;
// ...
while (scanf("%d%c", &data, &ch) == 2) { // а что эта 2 обозначает
 
    // ...
    if (ch == '\n') {
            break;
    }
}
// ...
и
Цитата Сообщение от AndrewS Посмотреть сообщение
PS. Где в коде описывается это условия, что после ввода не числового символа закончить ввод?
0
anmartex
...
1709 / 1202 / 909
Регистрация: 12.02.2013
Сообщений: 1,978
16.11.2014, 16:52 #7
1. scanf
2. Строка 18
0
16.11.2014, 16:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2014, 16:52

Сформировать новый список путем изменения порядка следования элементов на противоположный относительно исходного списка
Написать программу которая формирует новый список путем изменения порядка следования элементов на...

Отобрать все возможные значения элементов исходного массива в новый
Итак. Есть массив, к примеру int a={1,2,2,4,5,4,1,3,4,3}. В нем есть элементы, значения которых...

Все положительные элементы матрицы заменить на 1, а отрицательные элементы – на (-1)
Ввести массив A(N, N). Образовать массив В(N, N) в котором все положительные элементы массива А(N,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru