Excel地址 C語言

Excel單元格的地址表示很有趣,它使用字母來表示列號。
比如,
A表示第1列,
B表示第2列,
Z表示第26列,
AA表示第27列,
AB表示第28列,
BA表示第53列,

當然Excel的最大列號是有限度的,所以轉換起來不難。
如果我們想把這種表示法一般化,可以把很大的數字轉換爲很長的字母序列呢?

本題目既是要求對輸入的數字, 輸出其對應的Excel地址表示方式。

例如,
輸入:
26
則程序應該輸出:
Z

再例如,
輸入:
2054
則程序應該輸出:
BZZ``

#include<stdio.h>
#include<string.h>
int main()
{
	int n,i=0,j=0,t,c;
	char a[10];
	scanf("%d",&n);
	while(n>0)
	{	
		if(n%26==0)
		{ t=26;
			a[i++]='A'+t-1;
			n=n/26-1;
		}
		else {
		t=n%26;
		a[i++]='A'+t-1;
		n=n/26;}
	}
	c=strlen(a);
	for(j=c-1;j>=0;j--)
	printf("%c",a[j]);
	return 0;
	
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章