各位帮忙看一下呗

NDFour 2016-12-12 12:36:43
一个很简单的编程题,我自己再本地自己电脑上测试也成功了 ,但是一提交到学校的Online Judge 上,就报错,下面有代码和题目以及报错截图,还请哪位帮忙看一下,哪出错误了,帮小弟指正一下,感激不尽

代码在最下面


题目在这




报错截图



本地运行




代码在这:

#include <stdio.h>
#include <stdlib.h>

int main()
{
char str[255]= {0};
int i,cnt=0;
while(gets(str)!=NULL)
{
for(i=0,cnt=0; i<255; i++)
{
switch (str[i])
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
cnt++;
}
printf("%d\n",cnt);
}
return 0;
}


还请各位帮忙看一下,谢谢
...全文
203 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
NDFour 2016-12-12
  • 打赏
  • 举报
回复
另外,还希望哪位大牛可以留下个联系方式,以后自己看不出来而且百度也找不到解决方案的时候还可以求助一下大牛
小灸舞 版主 2016-12-12
  • 打赏
  • 举报
回复
VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。
NDFour 2016-12-12
  • 打赏
  • 举报
回复
引用 11 楼 赵4老师的回复:
“多一少一”问题占程序员常犯错误的10%以上! 避免“多一少一”问题的方法之一是将比如<10甚至<5的数代入程序片断,掰手指头心算验证一下程序到底应该写为 x、x-1、x+1中的哪个? <、<=、==、>、>=中的哪个?
嗯嗯 老师 懂了,但是上面的错误截图上面显示正确答案是19,但是我的答案是30 是不是最主要的错误不在这里呢?如果主要错误在这里的话,就算第255个是元音字母 ,不也应该差1个,而不是30-19个么?
赵4老师 2016-12-12
  • 打赏
  • 举报
回复
“多一少一”问题占程序员常犯错误的10%以上! 避免“多一少一”问题的方法之一是将比如<10甚至<5的数代入程序片断,掰手指头心算验证一下程序到底应该写为 x、x-1、x+1中的哪个? <、<=、==、>、>=中的哪个?
赵4老师 2016-12-12
  • 打赏
  • 举报
回复
char str[255+1]= {0}; for(i=0,cnt=0; i<strlen(str); i++)
NDFour 2016-12-12
  • 打赏
  • 举报
回复
引用 8 楼 qq_36409192的回复:
[quote=引用 6 楼 NDFour的回复:][quote=引用 3 楼 qq_36409192的回复:]题目好像没说输入一行字符串,然后接着输出对应的元音个数吧。。
说了啊,有样例输入和样例输出[/quote] 样例里面是一句输入一个输出??我怎么看到的是输入完再输出的。。[/quote] 不是的 我们学校的题目就是这样。。。之前我也是你那样想的 一问老师才知道是输入一句 就输出一句
ck2333 2016-12-12
  • 打赏
  • 举报
回复
引用 6 楼 NDFour的回复:
[quote=引用 3 楼 qq_36409192的回复:]题目好像没说输入一行字符串,然后接着输出对应的元音个数吧。。
说了啊,有样例输入和样例输出[/quote] 样例里面是一句输入一个输出??我怎么看到的是输入完再输出的。。
NDFour 2016-12-12
  • 打赏
  • 举报
回复
引用 4 楼 paschen的回复:
for(i=0,cnt=0; i<255; i++) 改成: for(i=0,cnt=0; i<strlen(str); i++)
怎么了?有什么问题吗?没看懂你要表达什么意思
NDFour 2016-12-12
  • 打赏
  • 举报
回复
引用 3 楼 qq_36409192的回复:
题目好像没说输入一行字符串,然后接着输出对应的元音个数吧。。
说了啊,有样例输入和样例输出
NDFour 2016-12-12
  • 打赏
  • 举报
回复
引用 2 楼 贫僧博企的回复:
1 输入最长是255,但不一定是255,最长应该是字符串的长度。 2 switch括号,default 加好。
嗯嗯 谢谢改正,但是从那个错误提示来看 正确答案是19,我的是30 跟你刚刚说的这个应该没有什么关系,能不能帮忙看一下是不是我的逻辑在哪写错了?
paschen 2016-12-12
  • 打赏
  • 举报
回复
for(i=0,cnt=0; i<255; i++) 改成: for(i=0,cnt=0; i<strlen(str); i++)
ck2333 2016-12-12
  • 打赏
  • 举报
回复
题目好像没说输入一行字符串,然后接着输出对应的元音个数吧。。
灌水号 2016-12-12
  • 打赏
  • 举报
回复
1 输入最长是255,但不一定是255,最长应该是字符串的长度。 2 switch括号,default 加好。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧