大神帮我看一下这个 acm 的题提交会总显示 WrongAnswer 是怎么回事啊?
1个回答
2016-08-21
展开全部
尝试去掉 fflush(stdin);
因为在VC中,你是从键盘一行一行输入。输入一行之后在输入下一行之前,计算机把键盘换从去清除是没有问题的。计算机运行很快,你的下一行输入会再上一行处理完之后一段时间才会被送入计算机,清除输入设备没有问题。
但在ACM中,它的输入一般是通过重定向,从文件中输入的,你清除标准输入设备,会把后面所有的输入数据全部清掉,那肯定就错了。
因为在VC中,你是从键盘一行一行输入。输入一行之后在输入下一行之前,计算机把键盘换从去清除是没有问题的。计算机运行很快,你的下一行输入会再上一行处理完之后一段时间才会被送入计算机,清除输入设备没有问题。
但在ACM中,它的输入一般是通过重定向,从文件中输入的,你清除标准输入设备,会把后面所有的输入数据全部清掉,那肯定就错了。
追问
谢谢大神~~可是去掉fflush(stdin)后还是WrongAnswer。。。这代码有别的毛病么??
追答
对了,那个p=0等应该放到循环外面啊,看下面的代码吧
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
int n,p,N;
char m[200];
scanf("%d\n",&N);
p=0;
while (N--)
{
gets(m);
n=strlen(m);
while(n--)
if((m[n] >='a') && (m[n]<='z')) p++;
}
p = p % 26;
printf("%c\n",((p==0)?'z':'a'+(p-1)));
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询