невозможно преобразовать отрицательные значения в положительные в массиве?

Мне нужно вернуться true/false если в массиве было какое-либо целое число, преобразованное в положительное, я могу вернуть 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;
}

1

Решение

Заявление:

abs(a[i]);

выполняет только преобразование, но значение теряется, поскольку вы не переназначаете соответствующий элемент массива, а параметр не передается по ссылке. У тебя должно быть:

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

Другие решения

Ваша линия

abs(a[i]);

вычисляет абсолютное значение массива «a» в позиции i и отбрасывает его, потому что оно останется недоступным.

Вы должны написать

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

или проще

a[i] = -a[i];

преобразовать отрицательное число a [i] в ​​положительное.

2

abs просто возвращает абсолютное значение своего аргумента, который вы затем игнорируете, не используя его. Вместо этого вы должны переназначить это значение обратно на элемент массива:

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

Вы получаете только абсолютное значение, а не устанавливаете его,
вам нужно будет сделать a[i] = abs(a[i]);

0
По вопросам рекламы [email protected]