首页 新闻 会员 周边

百度面试时遇到这样一个问题:给定数组a[];计算除最后一个元素之外其他元素的和,下面的代码有什么问题吗

0
[待解决问题]

int BuggySum( int a[], size_t len ){
int sum = 0;
for( int I =0; I < len -1; I++ ){
sum += a[I];
}
return sum;
}

c
夏海风的主页 夏海风 | 菜鸟二级 | 园豆:202
提问于:2017-08-17 19:47
< >
分享
所有回答(2)
0

这种题目是百度面试能出的吗...

后面的len没必要.因为数组的长度是已知的.你让他输入的话反而会有出错的情况.

考点就是:I < len -1; 你写的也是对的

吴瑞祥 | 园豆:29449 (高人七级) | 2017-08-18 08:34

哈哈,确实是

支持(0) 反对(0) 夏海风 | 园豆:202 (菜鸟二级) | 2017-08-18 11:14

很明显这是C/C++代码,不是Java,所以,如果不传递len参数,函数内部是不能知道数组的长度的。并且通过sizeof()也不能计算出来,因为数组传递参数后a实际是一个int指针。

支持(0) 反对(0) lulipro | 园豆:273 (菜鸟二级) | 2017-08-18 20:40
1

1.参数没检查

2.sum可能会溢出

3.变量为毛取名叫l?什么l,o这种单字母的临时变量要避免

Daniel Cai | 园豆:10424 (专家六级) | 2017-08-18 09:32

嗯嗯,你说的对,谢谢

支持(1) 反对(0) 夏海风 | 园豆:202 (菜鸟二级) | 2017-08-18 11:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册