答案仅供参考
【T1】序号互换
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int Pow(int n,int x)
{
int i,sum=1;
for(i=1;i<=x;i++)
sum*=n;
return sum;
}
int main()
{
char **p,c;
int i,j,k,sum,n,l,*q;
scanf("%d",&n);
p=(char**)malloc(n*sizeof(char*));
for(i=0;i<n;i++)
{
*(p+i)=(char*)malloc(Pow(10,4)*sizeof(char));
scanf("%s",*(p+i));
}
for(i=0;i<n;i++)
{
sum=0;
l=0;
while(*(*(p+i)+l)!='\0')
l++;
if(*(*(p+i))>='A'&&*(*(p+i))<='Z')
{
for(j=0;j<l;j++)
sum+=(*(*(p+i)+j)-'A'+1)*Pow(26,l-1-j);
printf("%d\n",sum);
}
else
{
sum=0;
j=0;
while(*(*(p+i)+j)!='\0')
{
sum+=(*(*(p+i)+j)-'0')*Pow(10,l-1-j);
j++;
}
q=(int*)malloc(l*sizeof(int));
j=0;
while(sum!=0)
{
q[j]=sum%26;
sum=sum/26;
if(q[j]==0)
{q[j]=26;sum--;}
j++;
}
for(k=0;k<j;k++)
printf("%c",(q[j-1-k]-1+'A'));
putchar('\n');
}
}