Proc15. Описать процедуру ShiftLeft3($$A$$, $$B$$, $$C$$), выполняющую левый циклический сдвиг: значение $$A$$ переходит в $$C$$, значение $$C$$ — в $$B$$, значение $$B$$ — в $$A$$ ($$A$$, $$B$$, $$C$$ — вещественные параметры, являющиеся одновременно входными и выходными). С помощью этой процедуры выполнить левый циклический сдвиг для двух данных наборов из трех чисел: ($$A_1$$, $$B_1$$, $$C_1$$) и ($$A_2$$, $$B_2$$, $$C_2$$).
Решение:
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 |
#include <stdio.h> void swap(float *x, float *y){ *x=*x+*y; *y=*x-*y; *x=*x-*y; } void shiftleft3(float *a, float *b, float *c){ swap(a,b); swap(c,b); } int main(void) { int i; for (i=1;i<=2;++i){ float a,b,c; printf("A:"); scanf("%f", &a); printf("B:"); scanf("%f", &b); printf("C:"); scanf("%f", &c); shiftleft3(&a,&b,&c); printf("A:%f; B:%f; C:%f\n",a,b,c); } return 0; } |
Другие задачи из раздела Proc можно посмотреть здесь.
Комментарии: