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

Есть функция сложения, нужно сделать вычитание

08.06.2018, 16:44. Просмотров 368. Ответов 0
Метки нет (Все метки)

Имеется функция сложения длинных чисел на двусвязных списках
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
void add(list** first, list** tail, int value) {
    list* p = new list;
    p->next = NULL;
    p->prev = NULL;
    p->field = value;
 
    if (*first == NULL)
        *first = *tail = p;
    else {
        (*tail)->next = p;
        p->prev = *tail;
        *tail = p;
    }
}
 
void listprint(list* first)
{
    list*p;
    p = first;
    do {
        printf("%d ", p->field);
        p = p->next;
    } while (p != NULL);
}
 
void print2(list* first)
{
    if (first != NULL)
    {
        print2(first->next);
        printf("%d", first->field);
    }
}
 
 
 
 
 
list* sum(list*tail1, list*tail2)
{
    int x, y = 0, s;
    list* list1 = tail1, *list2 = tail2, *list3 = NULL, *last3 = NULL;
 
    while ((list1->next) != NULL)
    {
        list1 = list1->next;
    }
 
    while ((list2->next) != NULL)
    {
        list2 = list2->next;
    }
 
    while (list1 != NULL || list2 != NULL)
    {
        if (list1 != NULL && list2 != NULL)
        {
            s = list1->field + list2->field + y;
            y = 0;
            if (s < 10)
            {
                add(&list3, &last3, s);
            }
            else
            {
                s = s % 10;
                y = 1;
                add(&list3, &last3, s);
            }
            list1 = list1->prev;
            list2 = list2->prev;
        }
        else if (list1 == NULL)
        {
            if (y)
                add(&list3, &last3, list2->field + y);
            else add(&list3, &last3, list2->field);
 
            list2 = list2->prev;
            y = 0;
        }
        else if (list2 == NULL)
        {
            if (y)
                add(&list3, &last3, list1->field + y);
            else add(&list3, &last3, list1->field);
            list1 = list1->prev;
            y = 0;
        }
    }
    return list3;
 
}
Каким образом её можно изменить под вычитание? Никак не пойму

Добавлено через 2 часа 51 минуту
Можно удалять тему.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2018, 16:44
Ответы с готовыми решениями:

Функция сложения двух матриц
Здравствуйте форумчане, нужна ваша помощь с функцией для программы сложения двух матриц, сама...

Есть два текстовых файла со словами. Нужно сделать третий, который будет содержать перемешанные слова из них
Шапка.

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

Рекурсия: функция сложения двух чисел, используя только прибавление единицы
Помогите написать программу: Написать функцию сложения двух чисел, используя только прибавление...

Нужно сделать программу спасибо, нужно как можно скорее)
Нужно сделать программу спасибо, нужно как можно скорее) П.5.4. Правил Запрещено создавать темы с...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2018, 16:44

Матрицы вводится в Stringgrid, нужно сделать кнопку сложения матриц (Stringgrid1 и Stringgrid2) и вывести в результирующую матрицу (Stringgrid3)
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt;...

Нужно сделать вычитание в StrinGrid Число минус столбец StrinGrid
Нужно что бы возраст считался 2017 - Шестой столбец

Для заданных двух чисел произвести операции деления, сложения, умножения, вычитание
Для заданных двух чисел произвести операции деления, сложения, умножения, вычитание


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

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

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