无法将数组中的负值转换为正值?

unable to convert negative values to positive in array?

我需要 return true/false 如果数组中有任何整数转换为正数,我可以 return 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 只是 returns 其参数的绝对值,然后您可以通过不使用它来忽略它。相反,您应该将此值重新分配回数组的元素:

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

你得到的只是绝对值,不是设置, 你需要做 a[i] = abs(a[i]);

你的线路

abs(a[i]);

计算数组"a"在位置i的绝对值并丢弃它,因为它将保持不可访问。

你必须写

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

或更简单地说

a[i] = -a[i];

将负数a[i]转化为正数

只需在从数组中检索数据时进行转换,这将对您有所帮助!

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