数组越界问题严重
被自己蠢到:这一长串数字都没输入
当遇到问题时不能光顾着看代码,要进行调试快速找到错误
代码展示:
#include<cstdio>
#include<math.h>
int main(){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin); //调试利器,无需输入,只需读取提前写在1.txt中的输入内容
#endif
char zm[6]={'S','H','C','D','J'},result1[55];
int sz[13]={1,2,3,4,5,6,7,8,9,10,11,12,13},result2[55],index[54],K;
scanf("%d",&K);
for(int i=0;i<=53;i++){
scanf("%d",&index[i]);
}
for(int i=0;i<=53;i++){
int id=index[i]-1;
for(int j=0;j<K-1;j++){ //不管重复值k为何值,我们只需要得出这个值最终会被定位在哪个位置,无需将中间所有无用的过程呈现出来
id=index[id]-1;
}
result1[id]=zm[i/13]; //将待拼接的字符与数字分别在数组中对应存好
result2[id]=sz[i%13];
}
for(int i=0;i<53;i++){
printf("%c%d ",result1[i],result2[i]); //通过字母数字拼接的方式更快捷的输出内容
}
printf("%c%d",result1[53],result2[53]);
return 0;
}