Описать функцию ShiftRight3 - C (СИ)
Формулировка задачи:
Написать программу и описать функцию ShiftRight3(A, B, C), выполняющую правый циклический сдвиг: значение A переходит в B, значение B — в C, значение C — в A (A, B, C — вещественные параметры, являющиеся одновременно входными и выходными). С помощью этой процедуры выполнить правый циклический сдвиг для двух данных наборов из трех чисел: (A1, B1, C1) и (A2, B2, C2).
Решение задачи: «Описать функцию ShiftRight3»
textual
Листинг программы
void swap(int*a, int*b) {
int t = *a;
*a = *b;
*b = t;
}
void ShiftRight3(int *a, int *b, int*c) {
swap(a, b);
swap(a, c);
}
int main() {
int a = 1, b = 2, c = 3;
ShiftRight3(&a, &b, &c);
printf("\n%d %d %d", a,b,c);
ShiftRight3(&a, &b, &c);
printf("\n%d %d %d", a,b,c);
ShiftRight3(&a, &b, &c);
printf("\n%d %d %d", a,b,c);
return 0;
}
Объяснение кода листинга программы
- В функции swap происходит обмен значениями между двумя указателями на int.
- В функции ShiftRight3 первым шагом происходит обмен значениями между a и b, затем между a и c.
- В функции main создаются три переменные a, b и c со значениями 1, 2 и 3 соответственно.
- Затем вызывается функция ShiftRight3 с указателями на эти переменные.
- Выводится сообщение с текущими значениями переменных a, b и c.
- Затем снова вызывается функция ShiftRight3 с указателями на те же переменные.
- Выводится сообщение с новыми значениями переменных a, b и c.
- Затем снова вызывается функция ShiftRight3 с указателями на те же переменные.
- Выводится сообщение с новыми значениями переменных a, b и c.
- Функция main возвращает 0, что означает успешное завершение работы программы.