簡體   English   中英

無法將數組中的負值轉換為正值?

[英]unable to convert negative values to positive in array?

如果數組中有任何整數轉換為正數,我需要返回true / false ,我可以返回真或假,但是我無法將負整數轉換為正數?

#include <iostream>
using namespace std;

int convertArray (int a[],int sizeofArray )     

{
bool v = false;
for (int i=0; i<sizeofArray; i++)
{   

    if(a[i]<0)
    {
        abs(a[i]);
        v = true;

    }

  cout << i << "  " << a[i] << endl;  
}
return v;



}
int main()

{
    int b[5] = {1,-2,3,5,2};
    cout << convertArray (b,5)<<endl;

        return 0;
}

該聲明:

abs(a[i]);

只進行轉換但值丟失,因為您沒有重新分配給相應的數組元素,並且參數不是通過引用傳遞的。 你應該有:

a[i] = abs(a[i]);

你的線路

abs(a[i]);

計算位置 i 處數組“a”的絕對值並丟棄它,因為它將保持不可訪問。

你必須寫

a[i] = abs(a[i]);

或者更簡單

a[i] = -a[i];

將負數 a[i] 轉換為正數。

abs僅返回其參數的絕對值,然后您可以通過不使用它來忽略該值。 相反,您應該將此值重新分配回數組元素:

a[i] = abs(a[i]);

你只得到絕對值,而不是設置它,你需要做a[i] = abs(a[i]);

從數組中檢索數據時只需轉換,這將對您有所幫助!

arr[i]= Math.abs(arr[i]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM