C语言题求解。计算绝对值函数。 (if语句)?

Python015

C语言题求解。计算绝对值函数。 (if语句)?,第1张

#include <stdio.h>

int main()

{

    int a

    scanf("%d",&a)

    if(a<0)

        a=-a

    printf("%d\n",a)

    return 0

}

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

求一个数的绝对值.

main()

{

main()

{int x,y

scanf("%d",&x)

if (x<0) y=-x

printf ("%d\n",y)

if (x>0) y=x

printf ("%d\n",y)

}

假如,输入-10.结果为:10,10

输入10,结果就为:4211576,10

我就是想求得一个数的绝对值,为什么每次都得到两个结果.实在想不通.

解析:

有两个printf 就会输出两次,

你输入-10,执行了y=-xprintf ("%d\n",y)printf ("%d\n",y)三条语句,就是y=10和打印2次y。

你输入10,执行了printf ("%d\n",y)y=10printf ("%d\n",y)三条语句,第一个printf的y没有赋值,所以从内存直接读取值4211576。

如果不用ABS函数,可以这样写

main()

{int x,y

scanf("%d",&x)

y=x

if (x<0) y=-x

printf ("%d\n",y)

}

//求绝对值

#include <iostream>

#include <iomanip>

#include<cmath>

#define PI 3.1415927

using namespace std

int main()

{   //C++求绝对值:如果是整形的,就是abs(),如果是浮点型的,是fabs()

double r

while(cin>>r){

cout<<setprecision(2)<<std::fixed<<fabs(r)<<endl

}

return 0

}

扩展资料:

c语言中取绝对值的函数

不同类型的数据使用不同类型的绝对值函数:

1、整型

int abs(int i)  //返回整型参数i的绝对值 12

2、复数:

double cabs(struct complex znum)  //返回复数znum的绝对值  1

3、双精度浮点型:

double fabs(double x)  //返回双精度参数x的绝对值    1

4、长整型:

long labs(long n)  //返回长整型参数n的绝对值