笔试题目1:写一个函数,返回一个数组中所有元素被第一个元素除的结果
2012-03-29 22:30
459 查看
笔试题目1:写一个函数,返回一个数组中所有元素被第一个元素除的结果
很多人会想到如下:
void DivAarry(int *pArray,int size)
{
for(int i=size-1;i>=0;i--)
{
pArray[i] /= pArray[0];
}
}
问题1:可不可以把循环正着写,会出现什么问题
问题2:是否检查了除数为零的情况
对于问题1,显然是不可以的,如果正着写亦即:
for(int i=0;i<size;i++)
{
pArray[i] /= pArray[0];
}
这样一来当i=0是,数组的第一个元素变成了1,以后这个除数就会一直是1,而不是原来数组的一个数,不符合要求
修改后:
void DivArray(int *pArray,int size)
{
for(int i=size-1;i>=0;i--)
{
if(pArray[0]==0)
cout<<"error"<<endl;
else
pArray[i] /=pArray[0];
}
}
这样写下来发现是可以的,但是有一个问题,当size足够大时,效率却出问题了,因为每次都要判断数组第一个元素是否为零,这样浪费时间了,可以将其放在循环外面,
结果就编成了下面的代码:
void DivArray(int *pArray,int size)
{
if (pArray[0]==0) cout<<"error"<<endl;
else
for(int i=size-1;i>=0;i--)
{
pArray[i] /=pArray[0];
}
}
很多人会想到如下:
void DivAarry(int *pArray,int size)
{
for(int i=size-1;i>=0;i--)
{
pArray[i] /= pArray[0];
}
}
问题1:可不可以把循环正着写,会出现什么问题
问题2:是否检查了除数为零的情况
对于问题1,显然是不可以的,如果正着写亦即:
for(int i=0;i<size;i++)
{
pArray[i] /= pArray[0];
}
这样一来当i=0是,数组的第一个元素变成了1,以后这个除数就会一直是1,而不是原来数组的一个数,不符合要求
修改后:
void DivArray(int *pArray,int size)
{
for(int i=size-1;i>=0;i--)
{
if(pArray[0]==0)
cout<<"error"<<endl;
else
pArray[i] /=pArray[0];
}
}
这样写下来发现是可以的,但是有一个问题,当size足够大时,效率却出问题了,因为每次都要判断数组第一个元素是否为零,这样浪费时间了,可以将其放在循环外面,
结果就编成了下面的代码:
void DivArray(int *pArray,int size)
{
if (pArray[0]==0) cout<<"error"<<endl;
else
for(int i=size-1;i>=0;i--)
{
pArray[i] /=pArray[0];
}
}
相关文章推荐
- 题目是:写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 题目是:写一个函数,返回一个数组中所有元素被第一个元素除的结果
- [编程之美]写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 写一个函数,返回一个数组中所有元素被第一个元素相除的结果
- 面试题-->写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 编程之美:写一个函数,返回一个数组中所有元素被第一个元素除的结果。
- 一道值得深思的面试题:写一个函数,返回一个数组中所有元素被第一个元素除的结果。
- 编程之美_001写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 编程之美 - 写一个函数,返回数组中所有元素被第一个元素除的结果
- [编程之美]写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 设计函数返回一个数组中所有元素被第一个元素除的结果
- 返回一个数组中所有元素被第一个元素除的结果
- 读编程之美:第一个编程题,写一个函数,返回数组所有数除于数组第一个数的结果集合
- 返回一个数组中所有元素被第一个元素除的结果
- 有一个数组,每次从中间随机取一个,然后放回去,当所有的元素都被取过,返回总共的取的次数。写一个函数实现。复杂度是什么。
- 返回数组中所有元素被第一个元素除的结果
- 编程之美01—返回数组中所有元素与一个元素相除的结果
- 题目:给一个排序好的整数数组A,请写一个函数,输入是数组A和一个整数x,返回数组A中值小于x的最大元素的索引值
- 修改 anyCommonElements(_:_:) 函数来创建一个函数,返回一个数组,内容是两个序列的共有元素
- 给定一个数组nums,写一个函数将所有的值移动0到最后,同时保持非零元素的相对顺序不变