Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Напишите программу, которая считывает 5 целых чисел, а затем определяет наименьшее и наибольшее значение http://www.cyberforum.ru/c-beginners/thread2261145.html
Напишите программу, которая считывает 5 целых чисел, а затем определяет наименьшее и наибольшее значение. Не знаю почему, но данная тема мне очень сложно дается(( подскажите почему она у меня криво...
C (СИ) Напечатать в возрастающем порядке все цифры, не входящие в десятичную запись натурального числа n Добрый вечер, мне нужна помощь с написанием программы на языке Си, первую половину я сделал, а вот как сделать проверку, не знаю. Само задание выглядит так: Подсчитать количество различных (значащих)... http://www.cyberforum.ru/c-beginners/thread2261044.html
C (СИ) Ближайшая к началу координат точка
Дана программа, учусь на 1-м курсе, пропустил лекции, помогите написать ее: На плоскости задано n точек с действительными координатами (x1, y1), (x2, y2), ... (xn, yn). Выяснить, какая из них ближе...
Подсчет букв в строке (без учета регистра) C (СИ)
День добрый! Очередное задания и опять не могу понять как сделать! 1. Необходимо сосчитать колличество определенных букв в строке. Все сделал все работает, но функция чувствительна к регистру....
C (СИ) Найти для каждой из трёх заданных прямоугольных матриц http://www.cyberforum.ru/c-beginners/thread2260765.html
Найти для каждой из трёх заданных прямоугольных матриц а. сумму квадратов элементов; б. произведение положительных элементов; в. максимальный элемент и номера строки и столбца, на пересе¬чении...
C (СИ) Генерация и вывод прямоугольной целочисленной матрицы Даны целые числа a, b, n и m. Составить программу генерации и вывода прямоугольной целочисленной матрицы, состоящей из n строк и m столбцов, элементы которой принимают значения из интервала . подробнее
nikita55050505
0 / 0 / 1
Регистрация: 27.10.2017
Сообщений: 50
0

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

08.06.2018, 16:44. Просмотров 370. Ответов 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
Готовые ответы и решения:

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

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

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

Нужно сделать, чтобы программа состояла из 3 функций, тоесть 1-ая функция ввода массива, 2-ая основная функция, 3-я- вывод массива
Есть программа #include &lt;iostream&gt; #include &lt;algorithm&gt; const int N = 5; int handSet(void)...

Создать производный класс, в котором реализована функция умножения вектора на число и функция сложения двух векторов
Write программу с использованием класса Вектор (не без помощи форумчанина), но необходимо создать...

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