如果数组中有任何整数转换为正数,我需要返回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;
}
,我可以返回true或false,但是我不能将负整数转换为正数?
typedef struct macaddress {
char macaddress[6];
}macaddress;
macaddress* macaddresses = (macaddress *)calloc(1, sizeof(macaddress))
sourcehost(eth_header, macaddresses, doesntmatter);
void sourcehost(struct ether_header * eth_header, char * macaddresses, int VariableToIncrement)
bool present;
int prevsize = sizeof(macaddresses) / sizeof(macaddress);
for (int i = 0; i < prevsize; i++) {
if (strcmp(macaddresses[i], eth_header->ether_shost)) {
present = true;
}
}
}
答案 0 :(得分:3)
声明:
abs(a[i]);
仅执行转换,但是值丢失,因为您没有重新分配给相应的数组元素,并且该参数未通过引用传递。您应该具有:
a[i] = abs(a[i]);
答案 1 :(得分:2)
您的专线
abs(a[i]);
计算位置i处的数组“ a”的绝对值,并将其丢弃,因为它将保持不可取。
你必须写
a[i] = abs(a[i]);
或更简单地
a[i] = -a[i];
将负数a [i]转换为正数。
答案 2 :(得分:1)
abs
仅返回其参数的绝对值,然后您可以通过不使用它来忽略它。相反,您应该将此值重新分配回数组的元素:
a[i] = abs(a[i]);
答案 3 :(得分:0)
您只获得绝对值,而没有设置它,
您需要做a[i] = abs(a[i]);
答案 4 :(得分:0)
只需在从数组中检索数据时进行转换,这将对您有所帮助!
arr[i]= Math.abs(arr[i]);