[C++] 纯文本查看 复制代码 #include<bits/stdc++.h>
using namespace std;
int main()
{
string a[3]={"勺子","杯子","筷子"};
srand(time(0));//种子
int b[3]={0,1,2};
for (int j=0;j<10;j++)
{
random_shuffle(b,b+3);//打乱次序
cout<<"初始状态是:";
for (int i=0;i<=2;i++)
{
cout<<a[b[i]]<<" ";
}
int g=find(b,b+3,2)-b;
if(g>=1)
{
swap(b[g-1],b[g]);
}
cout<<endl<<"第一次交换:";
for (int i=0;i<=2;i++)
{
cout<<a[b[i]]<<" ";
}
g=find(b,b+3,1)-b;
if(g<=1)
{
swap(b[g+1],b[g]);
}
cout<<endl<<"第二次交换:";
for (int i=0;i<=2;i++)
{
cout<<a[b[i]]<<" ";
}
g=find(b,b+3,0)-b;
if(g>=1)
{
swap(b[g-1],b[g]);//交换
}
cout<<endl<<"第三次交换:";
for (int i=0;i<=2;i++)
{
cout<<a[b[i]]<<" ";
}
cout<<endl<<endl;
}
return 0;
}
|