#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的绝对值