C语言 如何把负数变成正数

ekqde3dh  于 2023-01-12  发布在  其他
关注(0)|答案(9)|浏览(1198)

我得到的负浮点数为:

a = -0.340515;

为了将其转换为正数,我使用了abs()方法:

a = abs(a);

结果是a = 0.000000;
但我需要的结果是0.340515
谁能告诉我怎么做。

v2g6jxz6

v2g6jxz61#

abs()仅适用于整数。对于浮点型,请使用fabs()(或fabs()行中的一个,无论a实际是什么,其精度都正确)

ebdffaop

ebdffaop2#

您必须用途:

    • 整数的绝对值()
      制造工厂()用于
      双**

浮点的fabsf()

以上功能也将工作,但你也可以尝试这样的东西.

if(a<0)
    {
         a=-a;
    }
63lcw9qa

63lcw9qa3#

使用float fabsf (float n)作为float值。
对于double值,请使用double fabs (double n)
使用long double fabsl(long double)表示long double值。
对于int值,请使用abs(int)

vc6uscn9

vc6uscn94#

在数学中,要把负数转换成正数,你只需要把负数乘以-1;
那么你的解决方案可能是这样的:

a = a * -1;

或更短:

a *= -1;
xwmevbvl

xwmevbvl5#

a *= (-1);

问题解决了。2如果一个问题有一个更小的解决方案,那么为什么你们要去寻找一个复杂的解决方案。3请指导人们使用基本逻辑,因为只有人们才能训练他们的编程逻辑。

bcs8qyzn

bcs8qyzn6#

floor a;
floor b;
a = -0.340515;

那怎么办呢?

b = 65565 +a;
a = 65565 -b;

if(a < 0){
a = 65565-(65565+a);}
06odsfpq

06odsfpq7#

#include <iostream>
using namespace std;

int makePositiveSUM(int a,int b);

int main() {
    int t;
    cin>>t;
    while(t--){
        int x,y;
        cin>>x>>y;
        cout<<makePositiveSUM(x,y)<<endl;
    }
    return 0;
}

int makePositiveSUM(int a,int b){
    if(a>b){
        return a-b;
    }
    else {
        return b-a;
    }
}

    enter code here
    enter code here
    enter code here
mwyxok5s

mwyxok5s8#

这是我能想到的唯一办法。

//positive to minus
int a = 5; // starting with 5 to become -5
int b = int a * 2; // b = 10
int c = a - b; // c = - 5;
std::cout << c << endl;
//outputs - 5

 //minus to positive
int a = -5; starting with -5 to become 5
int b = a * 2; 
// b = -10
int c = a + b 
// c = 5
std::cout << c << endl;
//outputs 5

函数示例

int b = 0;
int c = 0;

int positiveToNegative (int a) {
    int b = a * 2;
    int c = a - b;
    return c;
}

int negativeToPositive (int a) { 
    int b = a * 2;
    int c = a + b;
    return c; 
}
4si2a6ki

4si2a6ki9#

为什么要使用奇怪的硬命令,当你可以用途:

if(a < 0)
    a -= 2a;

显然,if语句只适用于不确定数字是正还是负的情况。
否则,您必须使用以下代码:

a = abs(a) // a is an integer
a = fabs(a) // a is declared as a double
a = fabsf(a) // a is declared as a float (C++ 11 is able to use fabs(a) for floats instead of fabs)

要激活C++ 11(如果您使用Code::Blocks,您必须:
1.打开Code::块(推荐版本:第13.12节)。
1.转到设置-〉编译器。
1.确保使用的编译器是GNU GCC编译器。
1.单击[编译器设置],然后在打开的选项卡中单击[编译器标志
1.向下滚动,直到找到:让g遵循C 11 ISO C++ 标准[-std=c++11]。检查并点击OK按钮。
1.重新启动代码::块,然后你是好去!
完成这些步骤后,您应该能够使用fabs(a)代替fabsf(a)来实现浮点,fabsf(a)只用于C99或更低版本!(甚至C++ 98也可以允许您使用fabs代替fabsf:P)

相关问题