hdu 2055.an easy problem 题解 代码

Problem ## Description
we define f(A) = 1, f(a) = -1, f(B) = 2, f(b) = -2, … f(Z) = 26, f(z) = -26;
Give you a letter x and a number y , you should ## Output the result of y+f(x).

Input

On the first line, contains a number T.then T lines follow, each line is a case.each case contains a letter and a number.

Output
for each case, you should the result of y+f(x) on a line.

Sample Input

6
R 1
P 2
G 3
r 1
p 2
g 3

Sample Output

19
18
10
-17
-14
-4

题解

做一个F函数,然后再调用就行了。
话说这题的字符是个坑,不能直接写scanf("%c %d"),会多读取回车,必须写成scanf("n%c %d")~

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
int F(char c)
{
if(c>=65&&c<=90) return c-64;
else if(c>=97&&c<=122) return 96-c;
}
int main()
{
int n,m,sum;
char c;
scanf("%d",&n);
while(n--)
{
sum=0;
scanf("n%c %d",&c,&m);
sum=F(c)+m;
printf("%dn",sum);
}
return 0;
}