作者fjm31714 (鹏羽)
看板C_and_CPP
标题[问题] ACM494 两种做法的问题
时间Mon Feb 9 20:24:35 2009
下面是我做的两种做法
第一种AC
第二种WA
不过我一直找不出来第二种错在哪里XD
有哪个测资是两个做法会有不同的地方
请各位高手帮帮忙
谢谢
int main()
{
char str[400];
register int i,len,count;
while(gets(str))
{
len=strlen(str);
if(len==0)
return 0;
count=0;
for(i=0;i<len;i++)
{
if( (isalpha(str[i])) && !(isalpha(str[i+1])) )
count++;
}
printf("%d\n",count);
}
}
================================================
int main()
{
register int count=0;
register char c;
while(c=getchar())
{
if(isalpha(c))
{
while(c=getchar())
{
if(isalpha(c))
continue;
else
break;
}
count++;
}
if(c=='\n')
{
printf("%d\n",count);
count=0;
continue;
}
if(c==EOF)
{
printf("%d",count);
return 0;
}
}
return 0;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.164.107.205
1F:推 ledia:差满多的, 第一个只看相邻两个字元的对应关系 02/09 20:49
2F:推 ledia:呃... 忘了上面的推文 ._. 02/09 20:52
3F:→ ledia:问题应该在, 进入 isalpha 之後, 如果下一个非 alpha 就是换 02/09 20:53
4F:→ ledia:行, 那就会少 output 结果 02/09 20:53
5F:→ ledia:也不对 ._. 02/09 20:53
6F:推 DJWS:if (c==EOF) 那段砍掉应该就会对了? 02/09 21:28
7F:推 sa072686:if (c==EOF) 那边的 printf() 没有换行? 02/09 21:37
8F:→ fjm31714:TLE没有结束条件 02/09 21:41
9F:→ fjm31714:换行也一样WA 02/09 21:50
10F:推 DJWS:那就试着把if (c==EOF)那行里面的printf砍掉? 02/09 22:08
11F:→ fjm31714:这样最後一行的输出勒?还是ACM每行输出完会enter? 02/09 22:19
12F:推 QQting:EOF了为啥还要输出? 02/09 23:07
13F:→ fjm31714:大概了解意思我试试看 02/09 23:23
14F:→ fjm31714:恩恩是那里没错 谢谢 对线上测试的方法又多了解一点了 02/09 23:25