打卡11
2.8 猜数牌
基本框架
for(int i=1;i<=13;i++)//循环13次,每次将一张牌放进盒子
{
int n=1;
do //内循环找盒子,将i号牌放入
{
//如果盒子非空,继续找下一个盒子
//如果盒子空,判断盒子序号和牌序号是否相同,相同则存入
}while(n<=i);
}
do
{
if(j>13)j=1;
if(a[j])j++;//盒子非空,跳过盒子
else
{
if(n==i)a[j]=i;//判断盒子与牌是否匹配
j++;n++;
}
}while(n<=i);
完整程序
#include<bits/stdc++.h>
using namespace std;
int a[14];
int main()
{
cout<<"原始次序是:"<<endl;
int j=1;
for(int i=1;i<=13;i++)
{
int n=1;
do
{
if(j>13)j=1;
if(a[j])j++;
else
{
if(n==i)a[j]=i;
j++;n++;
}
}while(n<=i);
}
for(int i=1;i<=13;i++)cout<<a[i]<<' ';
puts("");
}
流程图