Форум программистов, компьютерный форум CyberForum.ru

Циклический сдвиг - C++

Восстановить пароль Регистрация
 
Ханапов
2 / 2 / 1
Регистрация: 26.01.2013
Сообщений: 59
16.10.2013, 21:42     Циклический сдвиг #1
Ребята, в чем может быть проблема? Надо организовать ф-цию циклического сдвига вправо. ТО бишь x->y, y->z, z->x. Что я делаю не так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
#include <conio.h>
using namespace std;
void ShiftRight(double x,double y,double z);
 {
   double t;
   t=x;
   x=y;
   y=z;
   z=t;
 }
int _tmain(int argc, _TCHAR* argv[])
{
    int a,b,c;
    cin >> a >> b >> c;
    ShiftRight(a,b,c);
    cout << a << b <<c;
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13974 / 8805 / 1227
Регистрация: 24.12.2010
Сообщений: 15,952
16.10.2013, 21:46     Циклический сдвиг #2
Цитата Сообщение от Ханапов Посмотреть сообщение
в чем может быть проблема?
Ты меняешь копии элементов, а они сами остаются не тронутыми. Тема, которая ждет твоего внимания - "Передача параметров по значению"
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
16.10.2013, 21:53     Циклический сдвиг #3
Ханапов,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <conio.h>
using namespace std;
 
void ShiftRight(double &x,double &y,double &z) {
   double t;
   t=x;
   x=y;
   y=z;
   z=t;
}
 
int main()
{
    double a,b,c;
    cin >> a >> b >> c;
    ShiftRight(a,b,c);
    cout << a << b <<c;
    getch();
    return 0;
}
Байт
 Аватар для Байт
13974 / 8805 / 1227
Регистрация: 24.12.2010
Сообщений: 15,952
16.10.2013, 22:14     Циклический сдвиг #4
Мне больше нравится такой вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <conio.h>
using namespace std;
 
void ShiftRight(double *x,double *y,double *z) {
   double t;
   t=*x;
   *x=*y;
   *y=*z;
   *z=t;
}
 
int main()
{
    double a,b,c;
    cin >> a >> b >> c;
    ShiftRight(&a, &b, &c);
    cout << a << b <<c;
    getch();
    return 0;
}
хотя оба варианта АБСОЛЮТНО ИДЕНТИЧНЫ. newb_programmer, ваш вариант есть просто другая запись моего.

Не по теме:

И вот я до сих пор не могу понять, зачем создателям С++ понадобилось на ровном месте вводить новые сущности. Да еще временами сбивающие с толку.

Yandex
Объявления
16.10.2013, 22:14     Циклический сдвиг
Ответ Создать тему
Опции темы

Текущее время: 12:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru