hdu2055

来源:互联网 发布:孙杨牙齿 知乎 编辑:程序博客网 时间:2024/06/09 22:54

这段代码是引用的,对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

原创粉丝点击