繁体   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