一个简单的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;
}
原来的程序简单些,改了改,越来越麻烦,哎,结果还是一样 各位大虾一定帮忙解释 我分不多了,全部给你,再次谢谢了 展开
定义:
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;
}
原来的程序简单些,改了改,越来越麻烦,哎,结果还是一样 各位大虾一定帮忙解释 我分不多了,全部给你,再次谢谢了 展开
1个回答
展开全部
#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;
}
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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询