hdu2055

这段代码是引用的,对scanf()运用比较熟练才行

#include <stdio.h>

int main()
{
 int n, a;
 char c;

 scanf("%d%*c", &n);
 while (n-- && scanf("%c%d%*c", &c, &a))
  printf("%d\n", a + (c < 97 ? c - 'A' + 1 : 'a' - c - 1));

 return 0;
}

下面的是本人的,有点惭愧了

#include <stdio.h>
int main()
{
    int  nCase;
    int  y;
    char  ch;
    scanf("%d",&nCase);
    getchar();
    while(nCase--)
    {
        scanf("%c %d",&ch,&y);
        getchar();

        if(ch>='A'&&ch<='Z')
            printf("%d\n",y+ch-'A'+1);
        else
            printf("%d\n",y-(ch-'a'+1));
    }
    
    return 0;
}

此处为什么要加一个getchar(),这要好好研究scanf()函数才行


1. scanf()函数接收char时,空格,回车,tab此时均为有意义的字符了,不会被忽略。%d时会视为分隔
一般加上getchar()吸收/n
2. scanf("%s", str);此时不接收str中的空格,到空格就断了
如果想接收空格成一个字符串,则用如下:


scanf("%[^\n]",string); 

这里的意思是直到\n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值