L1-040. 最佳情侣身高差【附C++如何保留几位小数,可设置为对一个对象或多个对象生效】

专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09=(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。

下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。

输入格式:

输入第一行给出正整数N(<=10),为前来查询的用户数。随后N行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 [1.0, 3.0] 之间的实数。

输出格式:

对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。

输入样例:
2
M 1.75
F 1.8
输出样例:
1.61
1.96
这道题其实挺水的,但是为了以后找对象可能用得到,所以就收藏下了。

#include<cstdio>
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int n;
    char c;
    double a;
    cin>>n;
    while(n--)
    {
        cin>>c>>a;
        if(c=='F')
        {
            cout<<setiosflags(ios::fixed)<<setprecision(2)<<a*1.09;
            /*
            这里如果加上“setiosflags(ios::fixed)”代表保留小数点后多少位,如果不加则是保留多少位(包括小数点前的数)
            setiosflags(ios::fixed)是指以固定的浮点显示,
            当setiosflags(ios::fixed)和serprecision(n)两个一起用时就表示保留n位小数输出。
            这里还要注意,每次输出只要设置一次就行了,因为这两个的作用范围是后续对象,
            而不是仅对后一个对象起作用。
            如果是cout<<fixed<<setprecision(2),这个表示仅对后一个对象起作用。
            这里因为cout语句后面只有一个对象,所以体现不出来,如果有多个对象就能体现出来了。
            */
        }
        else if(c=='M')
        {
            cout<<setiosflags(ios::fixed)<<setprecision(2)<<a/1.09;
        }
        if(n)
            cout<<endl;
    }
}

猜你喜欢

转载自blog.csdn.net/coco56/article/details/79274437