题目很简单,坑在于当你想用C的scanf去获取第一个字符的时候,scanf("%c %d",&c,&a),会出现两个都获取失败。原因在于scanf %c是回车后从缓存里读取第一个字符,这里读出来的是什么我也不知道,反正就出问题了。
然后尝试用 c = getche()来读取第一个字符,getchar()来处理掉中间的空格,然后scanf()读取最后的数字,效果是OK的,但是提交之后TLE。应该是getche效率太低,又或者是在某个地方一直等待输入了(自己电脑没试出来)
最后换成C++的cin,很简单就AC了。
事实证明有时候C++的标准输入流还是能用的。。。
附加一个字符串输入的链接:
http://c.biancheng.net/view/1796.html
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include <conio.h>
#include <iostream>
using namespace std;
void main()
{
int n;
scanf("%d",&n);
while(n--)
{
char c;
int a;
int sum = 0;
cin>>c>>a;
if( c >= 'a' && c <= 'z')
{
sum = c - 'a' + 1;
sum = a - sum;
}
else
{
sum = c - 'A' + 1;
sum = a + sum;
}
printf("%d\n",sum);
}
}