魔术师翻纸牌,背面朝上,翻开第一张是A ,把A扔一边,再翻两张,第二张是2,把2扔一边,另一张放在这摞牌下面,再翻三张,第三张是3,3扔一边,另外两张放底下,以此类推,输出牌的顺寻 C语言代码实现
先把牌13分i次赋值给b[0],再把b数列所有位全部后挪,把b中存在数列最后一位提出,所有位后挪,把最后一位付给b[1],共进行13-i换位;输出b[1]~b[13];?
以下为我写的程序,错的,但不知错在哪里?
#include<stdio.h>
void main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int b[15];
int i,n,k,t;
for(i=12;i>=0;i--){
b[0]=a[i];
for(n=13;i>=1;n--)
b[n]=b[n-1];
for(k=13-i;k>0;k--){
t=b[13-i];
for(n=14-i;n>=2;n--)
b[n]=b[n-1];
b[1]=t;
}
}
for(i=1;i<=13;i++)
printf("%d\n",b[i]);
}
先把牌13分i次赋值给b[0],再把b数列所有位全部后挪,把b中存在数列最后一位提出,所有位后挪,把最后一位付给b[1],共进行13-i换位;输出b[1]~b[13];?
以下为我写的程序,错的,但不知错在哪里?
#include<stdio.h>
void main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int b[15];
int i,n,k,t;
for(i=12;i>=0;i--){
b[0]=a[i];
for(n=13;i>=1;n--)
b[n]=b[n-1];
for(k=13-i;k>0;k--){
t=b[13-i];
for(n=14-i;n>=2;n--)
b[n]=b[n-1];
b[1]=t;
}
}
for(i=1;i<=13;i++)
printf("%d\n",b[i]);
}