sevenwaters @ 2019-02-22 11:10:52
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n, i;
char a[50] = { 0 }, b[50] = { 0 };
scanf("%d", &n);
getchar();
for (i = 0;i<50;i++)
{
a[i] = getchar();
if (a[i] == '\n')
{
break;
}
}
for (i = 0;i<50;i++)
{
if (a[i]>96 && a[i]<123)
{
if (a[i] + n % 26 > 122)
{
b[i] = a[i] + n % 26 - 'z' + 96;
}
else if (a[i] + n % 26 < 123)
{
b[i] = a[i] + n % 26;
}
}
else
{
b[i] = a[i];
}
}
for (i = 0;i<50;i++)
{
if (b[i]>96 && b[i]<123)
{
printf("%c", b[i]);
}
}
system("pause");
return(0);
}
by OvOAuto @ 2019-02-22 11:26:58
把倒数第三行去掉
by OvOAuto @ 2019-02-22 11:27:59
如果有第三行,你在本机看到的输出是这样:
[Output]
Prsss any key to continue...
by OvOAuto @ 2019-02-22 11:29:17
有的评测机是会读入最后一行,有的会一直等待剩下的输出然后TLE(评测机才不会"press any key"呢)
by sevenwaters @ 2019-02-22 11:33:52
@Daniel_WFY_923 去掉了,一样5个wa,心塞。好像问题不在这个pause。
by OvOAuto @ 2019-02-22 11:37:43
说实话我是看到了pause就直接说出来的···
by OvOAuto @ 2019-02-22 11:38:04
@sevenwaters 至少有pause肯定爆零
by sevenwaters @ 2019-02-22 11:39:14
@Daniel_WFY_923 单机从a-z全测一遍,也没发现问题在哪。
by OvOAuto @ 2019-02-22 11:43:21
我觉得getchar()很容易读入空格、\n、\r之类的字符···所以我从来都是用这三个
/*1*/scnaf("%c%*c",&c);//%*c是读入但不存储数据,同理于其它数据类型(%*d这种都行)
/*2*/scanf("%s",s);//读入字符串
/*3*/cin.getline(s,1e9);//第一个是char组的组名,第二个是在读到第几个字符停止读取
by OvOAuto @ 2019-02-22 11:44:05
那个啥第一行写成scanf了,谢罪
by OvOAuto @ 2019-02-22 11:44:17
看懂就行