2011年的一道百度公司的程序改错题

题目见下。自己自己在做时遇到错误的地方(1)for循环的判断条件老是出错,

for(;tmp_str[i+1]==tmp_str; ++i)其实相当于

while(tmp_str[i+1]==tmp_str)

{ ++i ; }

意思应该是在tmp_str[i+1]==tmp_str时才会执行,当不相等时才会退出这个循环,而我竟然相反了,不知道含义就瞎做。记得前段时间参加康佳公司的笔试也是犯了这个错误。当成不等了。

(2)tmp_str!=0其实就是判断tmp_str所指向的字符是不是‘\0’,‘\0’字符的ascII码即为0,字符直接和整型比较时注意这个转化,而我竟错误的认为这句话运行时会出错。


答案是统计出一个字符串中相同字符的个数并打印出来。因为自己对c语言的strcat(str,buf);sprintf(buf,"%d%c",count,ch); 不是太熟,再加上上面提到的几个错误,导致没有得出结果,在同学和网络的帮助下,得出答案。

你可能感兴趣的:(百度)