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

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

20.05.2013, 17:30. Просмотров 802. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Скопировать все отрицательные элементы исходного в новый список (C (СИ)):

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

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

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

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

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

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

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) в котором все положительные...

Напечатать сначала все отрицательные, а затем все остальные элементы массива
Сформировать массив из 200 случайных чисел. Напечатать сначала все...

Напечатать сначала все положительные, а затем все отрицательные элементы массива
Сформировать массив из 100 случайных чисел. Напечатать сначала все...


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

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

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