Мне нужно вернуться 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;
}
Заявление:
abs(a[i]);
выполняет только преобразование, но значение теряется, поскольку вы не переназначаете соответствующий элемент массива, а параметр не передается по ссылке. У тебя должно быть:
a[i] = abs(a[i]);
Ваша линия
abs(a[i]);
вычисляет абсолютное значение массива «a» в позиции i и отбрасывает его, потому что оно останется недоступным.
Вы должны написать
a[i] = abs(a[i]);
или проще
a[i] = -a[i];
преобразовать отрицательное число a [i] в положительное.
abs
просто возвращает абсолютное значение своего аргумента, который вы затем игнорируете, не используя его. Вместо этого вы должны переназначить это значение обратно на элемент массива:
a[i] = abs(a[i]);
Вы получаете только абсолютное значение, а не устанавливаете его,
вам нужно будет сделать a[i] = abs(a[i]);