CSP CCF: 201903-1 小中大 (C++)

题目来源

201903-1 小中大

知识点

%f在printf下既可以表示float类型, 又可以表示double类型。
%lf在printf下是未定义的,但很多系统会接受%lf表示double类型。
%f 和 %lf 在scanf下是定义了的。scanf区别%f和%lf。

参考文章: c语言 printf 输出double %lf,C++玄学问题 关于printf输出double类型显示0.000000的原因…

代码

#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;

int main() {
    int N;
    cin>>N;

    int num[N];
    for (int i = 0; i < N; ++i) {
        cin>>num[i];
    }

    double n1, n2, n3;
    n1 = max(num[0], num[N-1]);
    n3 = min(num[0], num[N-1]);

    if (N % 2 == 0) {  // 偶数
        n2 = ((double)num[N/2] + (double)num[N/2 - 1]) / 2;
    }
    else {
        n2 = (double)num[N/2];
    }

    if (n2 - (int)n2 != 0) {
        //cout<<n1<<" "<<n2<<" "<<n3<<endl;
        printf("%.0f %.1f %.0f", n1, n2, n3);  // lf, 输出全为0
    }
    else {
        //cout<<n1<<" "<<n2<<" "<<n3<<endl;
        printf("%.0f %.0f %.0f", n1, n2, n3);
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值