其他分享
首页 > 其他分享> > pat-1042

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