打卡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("");
}

 

流程图

 

posted on 2023-04-24 12:08  临江柔  阅读(15)  评论(0编辑  收藏  举报