无法将数组中的负值转换为正值?
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]);
我需要 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]);