一道值得深思的面试题:写一个函数,返回一个数组中所有元素被第一个元素除的结果。
来源:互联网 发布:协议软件是什么 编辑:程序博客网 时间:2024/05/20 00:53
第一眼看到这个题,大家一定会说:这还不简单嘛,用一个for循环不就搞定了嘛!然后不不到一分钟就写出了如下代码:
#include <iostream>using namespace std;void divArray(float*arrSquence,int nLength){if (arrSquence==NULL||nLength<=0){return;}for (int i = 0; i < nLength;i++){arrSquence[i] /= arrSquence[0];}}int main(){float array[5] = { 2, 2, 3, 4, 5 };divArray(array, 5);for (int i = 0; i < 5;i++){cout << array[i] << " ";}cout << endl;return 0;}然后看输出结果:
发现除了数组的第一个元素变了,其余的都没变,这是为啥?
这有两个陷阱:
其一:如果循环从第一个元素开始,并且不用其他变量的话,在循环的第一步,第一个元素就变成了1,然后再用它去除别的元素就不符合要求了!
其二: 没检查除数为0的情况!
所以正确的写法如下:
void divArray(float*arrSquence,int nLength){if (arrSquence==NULL||nLength<=0||arrSquence[0]==0)//边界条件以及第一个元素为0的情况{return;}for (int i = nLength-1; i >=0;i--)//从后往前面循环{arrSquence[i] /= arrSquence[0];}}
1 0
- 一道值得深思的面试题:写一个函数,返回一个数组中所有元素被第一个元素除的结果。
- 题目是:写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 笔试题目1:写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 编程之美_001写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 编程之美:写一个函数,返回一个数组中所有元素被第一个元素除的结果。
- [编程之美]写一个函数,返回一个数组中所有元素被第一个元素除的结果
- [编程之美]写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 写一个函数,返回一个数组中所有元素被第一个元素相除的结果
- 设计函数返回一个数组中所有元素被第一个元素除的结果
- 返回一个数组中所有元素被第一个元素除的结果
- 返回一个数组中所有元素被第一个元素除的结果
- 编程之美01—返回数组中所有元素与一个元素相除的结果
- 读编程之美:第一个编程题,写一个函数,返回数组所有数除于数组第一个数的结果集合
- 数组中除一个元素外其他所有元素出现二或三次,找到只出现一次的元素
- C++面试题之写一个在一个字符串中寻找一个子串第一个位置的函数
- 使用php自带函数删除数组的第一个元素和最后一个元素
- [面试题]设计一个算法找到数组中两个元素相加等于指定数的所有组合
- [面试题]设计一个算法找到数组中两个元素相加等于指定数的所有组合
- android中进行https连接的方式
- 变量及其作用范围
- 面试资料
- 图片viewpage动态添加小圆点
- 连接和运行时库文件搜索路径的设置
- 一道值得深思的面试题:写一个函数,返回一个数组中所有元素被第一个元素除的结果。
- IOS面试题
- Lua中的函数(function)、可变参数、局部函数、尾递归优化等实例讲解
- Ubuntu 1404下安装ARToolKit及GStreamer
- Objective-c NSData转NSString后为nil 的解决办法
- Scala 基础入门教程
- Java并发编程:并发容器之ConcurrentHashMap
- android 资源(开源项目、library,框架{完善中})
- 【LeetCode-63】Unique Paths II