设计一个C++代码,要求用户输入三个整数。 程序将顺时针迭代旋转这些数字。 从用户输入旋转次数。
int a,b,c,n1,n2,n3,n;
cout<<"Enter number of rotations :"<<endl;
cin>>n;
cout<<"Enter 3 integers: "<<endl;
cin>>n1;
cin>>n2;
cin>>n3;
for(int i=1 ;i<=n; i=i+3)//1,4,7,10...
{
a=n1;
b=n2;
c=n3;
cout<<"After"<<i<<" "<<"clock cycle"<<c<<a<<b<<endl;
}
for(int i=2 ; i<=n ; i=i+3)//2,5,8,11...
{
a=n1;
b=n2;
c=n3;
cout<<"After"<<i<<" "<<"clock cycle"<<b<<c<<a<<endl;
}
for(int i=3; i<=n ; i=i+3)//3,6,9,12,15...
{
a=n1;
b=n2;
c=n3;
cout<<"After"<<i<<" "<<"clock cycle"<<a<<b<<c<<endl;
}
这是我的代码,我面临的唯一问题是旋转的数量是不对称的。
我建议您将这三个数字作为向量
的元素,并使用std::rotate
旋转向量
:
大致如下:
std::vector<int> vec(3);
for(auto& elem : vec) {
std::cin >> elem;
}
要旋转:
std::rotate(vec.begin(), vec.begin() + 1, vec.end());