pat-1042
作者:互联网
#include<iostream>
using namespace std;
int a[55],start[55],eend[55];
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<55;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<55;i++){
start[i]=i;
eend[i]=i;
}
for(int i=0;i<n;i++){
for(int j=0;j<55;j++){
start[j]=eend[j];
}
for(int q=1;q<55;q++){
eend[a[q]]=start[q];
}
}
char c[6]="SHCDJ";//需要半括最后'\0'
for(int i=1;i<=54;i++){
if(i!=1)printf(" ");
int ttt=eend[i]-1;//针对除余为0的情况 边界处使字母正确
printf("%c%d",c[ttt/13],ttt%13+1);//刚够再加回来取余 使取余正确
}
return 0;
}
总结
1.模拟棋牌分发,注意边界取余是0的元素,原值-1使他字母正确,余数+1使他的取余正确
2.char 型数组分配时大小是字母的长度+1因为还有一个'\0'
英语
问题 无
标签:1042,pat,正确,int,字母,棋牌,char,55 来源: https://blog.csdn.net/m0_45359314/article/details/113435978