编程之美--读书笔记--返回一个数组中所有元素被第一个元素除的结果
筆試題目1:寫一個函數(shù),返回一個數(shù)組中所有元素被第一個元素除的結(jié)果
很多人會想到如下:
void DivAarry(int *pArray,int size)
{
for(int i=size-1;i>=0;i--)
{
pArray[i] /= pArray[0];
}
}
問題1:可不可以把循環(huán)正著寫,會出現(xiàn)什么問題
問題2:是否檢查了除數(shù)為零的情況
對于問題1,顯然是不可以的,如果正著寫亦即:
for(int i=0;i<size;i++)
{
pArray[i] /= pArray[0];
}
這樣一來當i=0是,數(shù)組的第一個元素變成了1,以后這個除數(shù)就會一直是1,而不是原來數(shù)組的一個數(shù),不符合要求
修改后:
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];
?
}
}
這樣寫下來發(fā)現(xiàn)是可以的,但是有一個問題,當size足夠大時,效率卻出問題了,因為每次都要判斷數(shù)組第一個元素是否為零,這樣浪費時間了,可以將其放在循環(huán)外面,
結(jié)果就編成了下面的代碼:
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];
}
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/sun-mile-rain/archive/2013/04/01/2993664.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的编程之美--读书笔记--返回一个数组中所有元素被第一个元素除的结果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ-1260 Pearls DP
- 下一篇: 《那些年啊,那些事——一个程序员的奋斗史