题目链接如下:
http://acm.hdu.edu.cn/showproblem.php?pid=2055
因为这道题目比较简单,所以不详t细说思路了,只说一下扩展的内容
扩展什么呢?就是如何将字母与数字联系起来的方法
直接用这样一句话(int)( c-'A'+1) 就可以将字母从1到26分别对应起来(为什么这么写,自己想)
那么,如果要把小写字母换成大写字母呢?
c-'a'+'A'就可以啦
这道题我将自己做的解法跟别人做的很好的解法都放在一起对比一下:
#include<stdio.h>
int main()
{
int t;
scanf("%d",&t);
int i;
for(i=1;i<=2*t;i++)
{
char a;
int y;
scanf("%c %d",&a,&y);
if(a=='A')
printf("%d\n",y+1);
if(a=='B')
printf("%d\n",y+2);
if(a=='C')
printf("%d\n",y+3);
if(a=='D')
printf("%d\n",y+4);
if(a=='E')
printf("%d\n",y+5);
if(a=='F')
printf("%d\n",y+6);
if(a=='G')
printf("%d\n",y+7);
if(a=='H')
printf("%d\n",y+8);
if(a=='I')
printf("%d\n",y+9);
if(a=='J')
printf("%d\n",y+10);
if(a=='K')
printf("%d\n",y+11);
if(a=='L')
printf("%d\n",y+12);
if(a=='M')
printf("%d\n",y+13);
if(a=='N')
printf("%d\n",y+14);
if(a=='O')
printf("%d\n",y+15);
if(a=='P')
printf("%d\n",y+16);
if(a=='Q')
printf("%d\n",y+17);
if(a=='R')
printf("%d\n",y+18);
if(a=='S')
printf("%d\n",y+19);
if(a=='T')
printf("%d\n",y+20);
if(a=='U')
printf("%d\n",y+21);
if(a=='V')
printf("%d\n",y+22);
if(a=='W')
printf("%d\n",y+23);
if(a=='X')
printf("%d\n",y+24);
if(a=='Y')
printf("%d\n",y+25);
if(a=='Z')
printf("%d\n",y+26);
if(a=='a')
printf("%d\n",y-1);
if(a=='b')
printf("%d\n",y-2);
if(a=='c')
printf("%d\n",y-3);
if(a=='d')
printf("%d\n",y-4);
if(a=='e')
printf("%d\n",y-5);
if(a=='f')
printf("%d\n",y-6);
if(a=='g')
printf("%d\n",y-7);
if(a=='h')
printf("%d\n",y-8);
if(a=='i')
printf("%d\n",y-9);
if(a=='j')
printf("%d\n",y-10);
if(a=='k')
printf("%d\n",y-11);
if(a=='l')
printf("%d\n",y-12);
if(a=='m')
printf("%d\n",y-13);
if(a=='n')
printf("%d\n",y-14);
if(a=='o')
printf("%d\n",y-15);
if(a=='p')
printf("%d\n",y-16);
if(a=='q')
printf("%d\n",y-17);
if(a=='r')
printf("%d\n",y-18);
if(a=='s')
printf("%d\n",y-19);
if(a=='t')
printf("%d\n",y-20);
if(a=='u')
printf("%d\n",y-21);
if(a=='v')
printf("%d\n",y-22);
if(a=='w')
printf("%d\n",y-23);
if(a=='x')
printf("%d\n",y-24);
if(a=='y')
printf("%d\n",y-25);
if(a=='z')
printf("%d\n",y-26);
}
return 0;
}
更好的解法:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int n,y;
char c;
scanf("%d",&n);
getchar();
int i;
for(i=1;i<=n;i++)
{
scanf("%c %d",&c,&y);
if(c>='a'&&c<='z')
printf("%d\n",y-(int)(c-'a'+1));
else if(c>='A'&&c<='Z')
printf("%d\n",y+(int)(c-'A'+1));
getchar();
}
return 0;
}