level 6
#include "stdio.h"
#define MAXLEN 80
int main( )
{
int count,i,k,flag,sub;
char cc,ch,oldch,str[MAXLEN];
oldch=' ';
cc=getchar();
getchar();
while((ch=getchar())!='
#'||oldch!='#
')
{
k=0;
while(ch!='#'&& k=0&&sub<80)
{
printf("%d\n",sub);
}
else
printf("Not found\n");*/
}
return 0;
}
2012年11月22日 13点11分
8
level 3
改一下后面的for循环就好了
for (k=0; k<MAXLEN&&str[k]!='\0';k++ )
{
if (str[k]==cc)
{
sub=k;
}
}
2012年11月22日 13点11分
10
level 3
把循环判断条件从k<MAXLEN改成
k<MAXLEN&&str[k]!='\0'
2012年11月22日 14点11分
11
感动的都哭了。。终于成功了~~但能告诉·我为什么呢。。为什么这么加。。话说这个程序模板我也看不太懂,上面的好些句子觉得都没用~~比如oldch没用啊。。
2012年11月23日 05点11分
回复 huangqinquan :每个字符串最大是80个字符,但一般都小于80个字符,所以循环跳出条件应该是已经扫描到字符串的末尾而不是扫描了80个字符。扫描80个字符的话会读取其它内存空间的数据。
2012年11月23日 06点11分
回复 huangqinquan :而且,你如果用示例的输入,应该会输出0,6,6因为第二个字符串m在6,当把str字符串改为1234(第三个字符串)时,只会把str[0],str[1],str[2],str[3],str[4]改为1,2,3,4,'\0',str[5],str[6]等等还是"amming",所以第三次m最大值还是6
2012年11月23日 06点11分
回复 huangqinquan :我也没太仔细看你的代码,那个oldch应该是用来判断是否连续输入了两次#
2012年11月23日 06点11分