Выполнить правый циклический сдвиг в сроке - C (СИ)
Формулировка задачи:
Описать функцию ShiftRight3(A, B, C), выполняющую правый циклический сдвиг: значение A переходит в B, значение B — в C, значение C — в A (A, B, C — вещественные параметры, являющиеся одновременно входными и выходными). С помощью этой процедуры выполнить правый циклический сдвиг для двух данных наборов из трех чисел: (A1, B1, C1) и (A2, B2, C2).
Решение задачи: «Выполнить правый циклический сдвиг в сроке»
textual
Листинг программы
#include <stdio.h>
void ShiftRight3(float *a, float *b, float *c)
{
float tmp = *a;
*a = *c;
*c = *b;
*b = tmp;
}
int main()
{
float A1 = 1., B1 = 2., C1 = 3.;
float A2 = 7.5, B2 = -2.1, C2 = 3.33;
printf("before: A1 = %f,\tB1 = %f,\tC1 = %f\n", A1, B1, C1);
ShiftRight3(&A1, &B1, &C1);
printf("after: A1 = %f,\tB1 = %f,\tC1 = %f\n", A1, B1, C1);
printf("before: A2 = %f,\tB2 = %f,\tC2 = %f\n", A2, B2, C2);
ShiftRight3(&A2, &B2, &C2);
printf("after: A2 = %f,\tB2 = %f,\tC2 = %f\n", A2, B2, C2);
return 0;
}
Объяснение кода листинга программы
- В функции
ShiftRight3происходит циклический сдвиг элементов трех указателей на float:a,bиc. - В функции
mainобъявлены пять переменных типа float:A1,B1,C1,A2,B2,C2. - Перед вызовом функции
ShiftRight3выводятся значения переменныхA1,B1,C1иA2,B2,C2. - После вызова функции
ShiftRight3с использованием адресов переменныхA1,B1,C1значения переменных изменяются. - Затем выводятся новые значения переменных
A1,B1,C1иA2,B2,C2. - Значения переменных
A2,B2,C2также изменяются после вызова функцииShiftRight3, используя адреса переменныхA2,B2,C2. - В конце программы возвращается значение 0, что означает успешное выполнение программы.