蓝桥杯—地址转换(C语言解法)


题目描述

输入输出样例

输入

用户输入:
2
R12C4
R5C255

输出

D12
IU5

思路

  1. 第一个数字不变,所以最后输出
  2. 第二个数字mod26,可以得到最后一位字母,存入字母数组中,再将第二个数组整除26,循环运算直至小于0
  3. 输出字母数组时,要倒序输出

代码

#include
char al[27]={' ','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
char res[10];
int main(){
	int n,unchange,wchange;
	char ch;
	scanf("%d",&n);
	while(n--){
		int i=0;
		scanf("%c",&ch);
		while(ch=='\n' || ch==' ')scanf("%c",&ch);
		if(ch=='R'){
			scanf("%d",&unchange);
		}
		scanf("%c",&ch);
		if(ch=='C'){
			scanf("%d",&wchange);
		}
		while(wchange>0){
			res[i++]=al[wchange%26];
			wchange/=26;
		}
		for(int j=i-1;j>=0;j--){
			if(res[i]==' ')break;
			printf("%c",res[j]);
		}
		printf("%d\n",unchange);
	}
	return 0;
}