c++ - 无法将数组中的负值转换为正值?
问题描述
我需要返回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]);
推荐阅读
- javascript - 你如何将一个大数组分成三个一组而不分开?
- node.js - 如何在节点中使用 Crypto?
- java - JRE 使用 CPLEX LazyCallBack 检测到致命错误
- python - GUI 在单独的进程中触发操作
- sqlite - 遍历带有标记节点的树上的给定路径
- api - API 保护 - JWT vs HMAC 签名 vs OAuth
- reactjs - 如何在 React App 中设置 process.env.PUBLIC_URL
- language-agnostic - 为什么 LZ77 的实现不同?
- ios - 用“const 常量”声明变量的目的是什么?
- python - 在 Django 中迁移和创建超级用户后出现“没有这样的表:accounts_user”