信息学奥赛一本通 1040:输出绝对值 | OpenJudge NOI 1.4 02

时间:2025-02-19 11:56:45

【题目链接】

ybt 1040:输出绝对值
OpenJudge NOI 1.4 02:输出绝对值

【题目考点】

1. if…else语句
2. - 运算符

-x表达式的值为x的相反数

3. 三目运算符?:
4. fabs()函数 (存在于< cmath >中)

double fabs(double x);求浮点数x的绝对值

【题解代码】

解法1:用if…else语句
#include<bits/stdc++.h>
using namespace std;
int main()
{
    double x;
    cin>>x;
    if(x >= 0)
    	cout<<fixed<<setprecision(2)<<x;
    else
    	cout<<fixed<<setprecision(2)<<-x;
    return 0;
}
解法2:用if语句
#include<bits/stdc++.h>
using namespace std;
int main()
{
    double x;
    cin>>x;
    if(x < 0)
    	x = -x;
    cout<<fixed<<setprecision(2)<<x;
    return 0;
}
解法3:用三目运算符
#include<bits/stdc++.h>
using namespace std;
int main()
{
    double x;
    cin>>x;
    cout<<fixed<<setprecision(2)<<(x >= 0 ? x : -x);//此处条件不能写x > 0,因为当x为0时,输出-x会输出-0.00。本题要保证当x为0时输出0.00
    return 0;
}
解法4:用fabs()
#include<bits/stdc++.h>
using namespace std;
int main()
{
    double x;
    cin>>x;
    cout<<fixed<<setprecision(2)<<fabs(x);
    return 0;
}