Excel是常用的办公软件,在2013版的Excel中,最大行数是1048576,最大列数是16384。给定单元格的名称就可以知道它在第几列第几行。
例如,单元格名称是XFD1048576,表示第16384列,第1048576行。
请根据输入的Excel单元格名称,计算出excel单元格在第几列第几行。
第一行输入一个正整数T(T≤100000)
接下来有T组数据,每组数据有一个单元格地址,每组数据占一行。
根据每个单元格地址算出它的列数和行数,每个列数和行数占一行,中间用空格隔开。
3
XFD1048576
A5
SK8
16384 1048576 1 5 505 8
这题考察的是大家处理字符串的能力,一方面要将连在一起的列数和行数分开,另一方面,要将字符串形式的列数部分转换为数字形式,这个其实就是一个26进制转换的问题。
#include<stdio.h>
#include<ctype.h>
#include<math.h>
char s[100],h[10],l[10];//定义3个数组,用来存单元格地址和行数部分和列数部分
int main(){int t;//t组数据 scanf("%d",&t);//getchar();while(t--){scanf("%s",s);//读入单元格地址,存在s数组 int i = 0;int hi = 0;int li = 0;//1.取出列数部分存在h数组 while(isupper(s[i])){h[hi] = s[i];hi++;i++;}//2.取出行数部分存在l数组 while(isdigit(s[i])){l[li] = s[i];li++;i++;}l[li] = '