洛谷C++简单题小练习day17—输出保留 3 位小数的浮点数, A*B 问题,白细胞计数三个小程序

day17-- 输出保留 3 位小数的浮点数**--2.21**

习题概述

题目描述

读入一个单精度浮点数,保留 3 位小数输出这个浮点数。

提示:就这题来说,请使用 float 类型的单精度浮点数。

输入格式

只有一行,一个单精度浮点数。

输出格式

也只有一行,读入的单精度浮点数。

代码部分

复制代码
#include<bits/stdc++.h>
using namespace std;

int main()
{
    float a;
    cin >> a ;
    printf("%.3f", float(a)); 
    return 0;
}

day17-- A*B 问题类型问题**--2.21**

习题概述

题目描述

输入两个正整数 A 和 B,求 A×B 的值。注意乘积的范围和数据类型的选择。

输入格式

一行,包含两个正整数 A 和 B,中间用单个空格隔开。1≤A,B≤50000。

输出格式

一个整数,即 A×B 的值。

代码部分

复制代码
#include<bits/stdc++.h>
using namespace std;

int main()
{
    long long a,b;
    cin>>a;
    cin>>b;
    cout<<a*b;
    return 0;
}

心得体会


day17-- 白细胞计数**--2.21**

习题概述

题目描述

医院采样了某临床病例治疗期间的白细胞数量样本 n 份,用于分析某种新抗生素对该病例的治疗效果。为了降低分析误差,要先从这 n 份样本中++去除一个数值最大的样本和一个数值最小的样本++ ,然后将剩余 n−2 个有效样本的++平均值++作为分析指标。同时,为了观察该抗生素的疗效是否稳定,还要给出该平均值的误差,即所有有效样本(即不包括已扣除的两个样本)与该平均值之差的绝对值的最大值。

现在请你编写程序,根据提供的 n 个样本值,计算出该病例的平均白细胞数量和对应的误差。

输入格式

输入的第一行是一个正整数 n(2<n≤300),表明共有 n 个样本。

以下共有 n 行,每行为一个浮点数,为对应的白细胞数量,其单位为109/L。数与数之间以一个空格分开。

输出格式

输出为两个浮点数,中间以一个空格分开。分别为平均白细胞数量和对应的误差,单位也是 109/L。计算结果需保留到小数点后 2 位;

代码表示

复制代码
#include<bits/stdc++.h>
using namespace std;

int n;
double a[310];//浮点数数组,存储样本的白细胞数量
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	sort(a+1,a+n+1);//使用 sort 函数对数组 a 进行升序排序
	double jas=0;//计数器
	for(int i=2;i<n;i++)
		jas+=a[i];
	cout<<fixed<<setprecision(2)<<jas/(n-2)<<" "//平均白细胞数量 
	<<max(fabs(a[2]-jas/(n-2)),fabs(a[n-1]-jas/(n-2)));//对应的误差
	return 0;
}

心得体会

1.sort() 是 C++ 标准库 `<algorithm>` 中提供的一个排序函数。它可以对容器或数组中的元素进行排序。sort() 函数的基本用法是:

sort(first, last);

  • first:表示要排序的起始位置的迭代器。

  • last:表示排序的结束位置的迭代器(不包含)。

sort() 函数将会按照默认的升序规则对指定范围内的元素进行排序。如果要对自定义类型的容器或数组进行排序,需要确保该类型支持 `<` 运算符或传入自定义的比较函数。

除了基本用法外,sort()函数还可以接受第三个参数,用于指定自定义的比较函数,从而实现按照特定的排序规则进行排序。

例如,可以这样使用自定义的比较函数对容器进行降序排序:

bool compare(int a, int b) {

return a > b;

}

vector<int> nums = {5, 2, 8, 1, 3};

sort(nums.begin(), nums.end(), compare);

需要注意的是,sort() 函数的时间复杂度为 O(n log n),其中 n 是要排序的元素的数量。

  1. max(fabs(a[2]-jas/(n-2)),fabs(a[n-1]-jas/(n-2))); 解析如下

1) fabs() 函数:这是 C++ 标准库 <cmath> 中提供的函数,用于计算一个数的绝对值。它接受一个浮点数或双精度数作为参数,并返回该数的绝对值。

2) a[2]:这是数组 a 的第二个元素。

3) jas/(n-2):这是一个数值计算,其中 jas 是某个变量或常量,而 (n-2) 表示数组 a 中有效元素的数量减去 2。

现在我们来整体理解这个表达式:

·表达式中的 fabs(a[2]-jas/(n-2)) 计算了数组 a 的第二个元素与 jas/(n-2) 的差的绝对值。

·表达式中的 fabs(a[n-1]-jas/(n-2)) 计算了数组 a 的倒数第二个元素与 jas/(n-2) 的差的绝对值。

·接着 max() 函数会返回这两个差的绝对值中的较大值。

相关推荐
xiaoxiaoxiaolll22 分钟前
期刊速递 | 《Light Sci. Appl.》超宽带光热电机理研究,推动碳纳米管传感器在制药质控中的实际应用
人工智能·学习
励志码农1 小时前
JavaWeb 30 天入门:第二十三天 —— 监听器(Listener)
java·开发语言·spring boot·学习·servlet
天高云淡ylz1 小时前
子网掩码的隐形陷阱:为何能ping通却无法HTTPS访问
开发语言·php
DisonTangor1 小时前
字节开源 OneReward: 通过多任务人类偏好学习实现统一掩模引导的图像生成
学习·ai作画·开源·aigc
黎宇幻生2 小时前
Java全栈学习笔记33
java·笔记·学习
2501_926227943 小时前
.Net程序员就业现状以及学习路线图(五)
学习·.net
奔跑吧 android3 小时前
【linux kernel 常用数据结构和设计模式】【数据结构 2】【通过一个案例属性list、hlist、rbtree、xarray数据结构使用】
linux·数据结构·list·kernel·rbtree·hlist·xarray
汉克老师3 小时前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(5、机甲战士)
c++·算法·蓝桥杯·01背包·蓝桥杯c++·c++蓝桥杯
希望20173 小时前
Golang Panic & Throw & Map/Channel 并发笔记
开发语言·golang
朗迹 - 张伟3 小时前
Golang安装笔记
开发语言·笔记·golang