在Excel2003中,用A表示第1列,B表示第2列......Z表示第26列,AA表示第27列,AB表示第28列......以此类推,请写出一个函数,输入用大写字母表示的列号编码,输出它是第几列。
解:该题本质是把十进制数字用A~Z表示成二十六进制。
程序:
#include<stdio.h>
#include<string.h>
int my_fun(int len,char arr[])
{
int i,m=0;
for (i = 0; i < len; i++)
{
m += arr[i] - 64;
}
m += 25 * (len - 1);
return m;
}
int main()
{
int len,ret=0;
char arr[100] = "";
printf("请输入大写字母:");
scanf("%s", &arr);
len = strlen(arr);
ret=my_fun(len, arr);
printf("列号为:%d\n",ret);
return 0;
}
结果1:
请输入大写字母:A
列号为:1
请按任意键继续. . .
结果2:
请输入大写字母:AAB
列号为:54
请按任意键继续. . .