Даны два целых числа. С помощью функции пользователя большее из чисел заменить их разностью, а меньшее суммой - C (СИ)
Формулировка задачи:
Нужно решение задачи по СИ: даны два целых числа. с п*мощью функции пользователя большее из чисел заменить их разностью, а меньшее суммой.
Заранее большое спасибо.
Решение задачи: «Даны два целых числа. С помощью функции пользователя большее из чисел заменить их разностью, а меньшее суммой»
textual
Листинг программы
#include <stdio.h>
void foo(int *, int *);
int main()
{
int a, b;
scanf("%d%d", &a, &b);
foo(&a, &b);
printf("a = %d\nb = %d\n", a, b);
return 0;
}
void foo(int *a, int *b)
{
int c;
if (*a > *b) {
c = *a;
*a -= *b;
*b += c;
}
else {
c = *a;
*a += *b;
*b -= c; // *b = c - *b;
}
}
Объяснение кода листинга программы
В этом коде:
- В функции
mainобъявлены две переменные типаint-aиb, которые используются для ввода двух целых чисел с клавиатуры. - После ввода чисел вызывается функция
foo, которая принимает два указателя наint(представляющие собой начальные адреса в памяти для переменныхaиb). - Внутри функции
fooобъявлена дополнительная переменнаяc, которая используется для хранения значения разности или суммы чисел в зависимости от условий. - Сначала проверяется, больше ли первое число второго. Если это так, то выполняется следующая последовательность действий:
- Значение
cинициализируется значением первого числа (*a). - Значение первого числа (
*a) уменьшается на значение второго числа (*b). - Значение второго числа (
*b) увеличивается на значениеc.
- Значение
- Если первое число меньше второго, то выполняется следующая последовательность действий:
- Значение
cинициализируется значением первого числа (*a). - Значение первого числа (
*a) увеличивается на значение второго числа (*b). - Значение второго числа (
*b) уменьшается на значениеc.
- Значение
- После выполнения всех действий функция
fooвозвращает управление в функциюmain, которая выводит значения переменныхaиbс помощью функцииprintf. - Значения переменных
aиbобновлены в памяти, и их новые значения выводятся на экран. - Программа завершается возвратом значения 0 в функцию
main, что означает успешное выполнение программы.