一个简单的C语言问题(最好能帮我改代码)

Description定义:f(A)=1f(a)=-1f(B)=2f(b)=-2......f(Z)=26f(z)=-26读入一个字符x和一个整数y,请你求出f(x)+y... Description

定义:
f(A)=1 f(a)=-1
f(B)=2 f(b)=-2
. .
. .
. .
f(Z)=26 f(z)=-26
读入一个字符x和一个整数y,请你求出f(x)+y

Input

第一行为一个整数n,代表有几组测试数据,后面n行,每行一个字符x和一个整数y

Output

一组测试输出一个结果

Sample Input

4
R 1
P 2
G 3
r 1

Sample Output

19
18
10
-17
我的源码:
#include<stdio.h>
int main(void)
{
int i,n,a,x,y,sum=0,sum1=0,sum2=0;
char ch;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%c%d",&ch,&a);
if(ch>='A'&&ch<='Z'){
x=ch-64;
sum1+=x;
sum=(int)sum1;
}
else if(ch>='a'&&ch<='z'){
y=-(ch-96);
sum2+=y;
sum=(int)sum2;
}
printf("%d\n",sum+a);
}
return 0;
}
原来的程序简单些,改了改,越来越麻烦,哎,结果还是一样 各位大虾一定帮忙解释 我分不多了,全部给你,再次谢谢了
展开
 我来答
犹悦沅Ql
2010-05-21 · TA获得超过525个赞
知道小有建树答主
回答量:476
采纳率:0%
帮助的人:170万
展开全部
#include<stdio.h>
int main(void)
{
int i,n,a,sum;
char ch;
scanf("%d",&n);
for(i=0;i<n;i++)
{
getchar();//添加这一句消除回车键的影响
scanf("%c %d",&ch,&a);
if(ch>='A'&&ch<='Z')
{
sum=ch-'A'+1+a;
}
else if(ch>='a'&&ch<='z')
{
sum='a'-ch-1+a;
}
printf("%d\n",sum);
}
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式