文章目录
一、前言
该文章主要对小数运算的题目进行讲解。
二、问题
问题1:1603. 冷饮的价格?
类型:基本运算、小数数运算
题目描述:
暑假来了,天气特别热,花花到冷饮店来买冷饮;已知雪糕 2.5 元 / 支,碎碎冰 1.5 元 / 支,花花买了 x 支雪糕和 y 支碎碎冰,老板说今天有优惠,可以有 1 支雪糕免费,请问花花应该付给老板多少钱?
输入:
两个整数 x 和 y ,分别代表了雪糕和碎碎冰的购买数量。
输出:
一个小数,代表了花花应付给老板的金额(结果保留 1 位小数)。
样例:
输入:
3 5
输出:
12.5
1.分析问题
- 已知:花花买了 x 支雪糕和 y 支碎碎冰。
- 未知:花花应该付给老板多少钱?
- 关系:总价=单价*数量。
2.定义变量
- 定义整型变量x、y,分别存储雪糕和碎碎冰的数量。
- 定义双精度浮点型变量p,用于存储计算出的总金额(初始值为0)。
// 二、数据定义
int x, y;
double p = 0;
3.输入数据
- 从标准输入(如键盘)读取雪糕和碎碎冰的数量,并分别赋值给x、y。
// 三、数据输入
cin >> x >> y;
4.数据计算
- 计算总金额,其中雪糕单价为2.5元,碎碎冰单价为1.5元;第一支雪糕免费,所以雪糕数量减1后再乘以单价。
// 四、数据计算
p = (x - 1) * 2.5 + y * 1.5;
5.输出结果
- 设置输出格式为固定小数点、保留1位小数,然后输出总金额p。
// 五、输出结果
cout << fixed << setprecision(1) << p;
完整代码如下:
#include <bits/stdc++.h> // 包含C++标准库的头文件集合
using namespace std; // 使用std命名空间,简化后续代码中对标准库对象的引用
int main() { // 定义主函数
// 一、分析问题
// 已知:花花买了 x 支雪糕和 y 支碎碎冰。
// 未知:花花应该付给老板多少钱?
// 关系:总价=单价*数量。
// 二、数据定义
int x, y; // 定义整型变量x、y,分别存储雪糕和碎碎冰的数量
double p = 0; // 定义双精度浮点型变量p,用于存储计算出的总金额(初始值为0)
// 三、数据输入
cin >> x >> y; // 从标准输入(如键盘)读取雪糕和碎碎冰的数量,并分别赋值给x、y
// 四、数据计算
p = (x - 1) * 2.5 + y * 1.5; // 计算总金额,其中雪糕单价为2.5元,碎碎冰单价为1.5元;第一支雪糕免费,所以雪糕数量减1后再乘以单价
// 五、输出结果
cout << fixed << setprecision(1) << p; // 设置输出格式为固定小数点、保留1位小数,然后输出总金额p
return 0; // 主函数返回0,表示程序正常结束
}
问题2:1957. 求三个数的平均数
类型:基本运算、小数运算
题目描述:
小雅刚刚考完语文、数学、英语的三门期中考试,她想请你编个程序来帮她算算她的平均分。
要求输入三个正整数,分别表示三科考试的分数,输出它们的平均值。
输入:
一行,包括三个正整数,两两之间用一个空格分隔。
输出:
一个数,表示输入的三个数的平均值。(注意:结果请保留 3 位小数)。
样例:
输入:
75 88 99
输出:
87.333
1.分析问题
- 已知:语文、数学、英语的三门期中考试成绩。
- 未知:平均分。
- 关系:求平均分公式。
2.定义变量
- 定义整型变量yw、sx、yy,分别存储语文、数学、英语的成绩
- 定义双精度浮点型变量avg,用于存储计算出的平均分
// 二、数据定义
int yw, sx, yy;
double avg;
3.输入数据
- 从标准输入(通常为键盘)读取三个整数值,并将它们分别赋值给变量 yw、sx 和 yy。
// 三、数据输入
cin >> yw >> sx >> yy;
4.数据计算
- 通过将三科成绩相加后除以3.0(一个浮点数,确保结果为浮点数),计算得到平均分,并将结果存入变量 avg。
// 四、数据计算
avg = (yw + sx + yy) / 3.0;
5.输出结果
cout:它是用于标准输出(通常为控制台屏幕)的对象。
fixed:这个操纵符设置浮点数输出模式为定点表示法,确保小数点始终存在。
setprecision(3):该操纵符指定小数点后显示的位数,此处设置为3位。
<< avg:最后,将计算得出的平均分(avg)打印到控制台。
// 五、输出结果
cout << fixed << setprecision(3) << avg;
return 0; // 主函数返回0,表示程序正常结束
完整代码如下:
#include <bits/stdc++.h> // 包含C++标准库的头文件集合
using namespace std; // 使用std命名空间,简化后续代码中对标准库对象的引用
int main() { // 定义主函数
// 一、分析问题
// 已知:语文、数学、英语的三门期中考试成绩
// 未知:平均分
// 关系:求平均分公式
// 二、数据定义
int yw, sx, yy; // 定义整型变量yw、sx、yy,分别存储语文、数学、英语的成绩
double avg; // 定义双精度浮点型变量avg,用于存储计算出的平均分
// 三、数据输入
cin >> yw >> sx >> yy; // 从标准输入(如键盘)读取三科成绩,并分别赋值给yw、sx、yy
// 四、数据计算
avg = (yw + sx + yy) / 3.0; // 计算三科成绩之和除以3.0(确保浮点数结果),并将结果存入avg
// 五、输出结果
cout << fixed << setprecision(3) << avg; // 设置输出格式为固定小数点、保留3位小数,然后输出平均分avg
return 0; // 主函数返回0,表示程序正常结束
}
问题3:1602. 总分和平均分
类型:基本运算、小数运算
题目描述:
期末考试成绩出来了,小明同学语文、数学、英语分别考了 x、y、z 分,请编程帮助小明计算一下,他的总分和平均分分别考了多少分?
输入:
三个整数 x、y、z 分别代表小明三科考试的成绩。
输出:
第 1 行有一个整数,代表总分。
第 2 行有一个小数(保留 1 位小数)代表平均分。
样例:
输入:
100 95 91
输出:
286
95.3
1.分析问题
- 已知:小明同学语文、数学、英语分别考了 x、y、z 分。
- 未知:他的总分和平均分分别考了多少分?
- 关系:求和sum=x+y+z和求平均分avg= sum/3.0。
2.定义变量
- 定义整型变量x、y、z,分别存储语文、数学、英语的成绩;定义整型变量sum,用于存储总分(初始值为0)。
- 定义双精度浮点型变量avg,用于存储计算出的平均分。
// 二、数据定义
int x, y, z, sum = 0;
double avg;
3.输入数据
- 从标准输入(如键盘)读取语文、数学、英语的成绩,并分别赋值给x、y、z。
// 三、数据输入
cin >> x >> y >> z;
4.数据计算
- 计算总分,即将三科成绩相加。
- 计算平均分,即总分除以3.0(确保浮点数结果),并将结果存入avg。
// 四、数据计算
sum = x + y + z;
avg = sum / 3.0;
5.输出结果
- 输出总分。
- 设置输出格式为固定小数点、保留1位小数,然后输出平均分avg。
// 五、输出结果
cout << sum << endl;
cout << fixed << setprecision(1) << avg;
完整代码如下:
#include <bits/stdc++.h> // 包含C++标准库的头文件集合
using namespace std; // 使用std命名空间,简化后续代码中对标准库对象的引用
int main() { // 定义主函数
// 一、分析问题
// 已知:小明同学语文、数学、英语分别考了 x、y、z 分
// 未知:他的总分和平均分分别考了多少分?
// 关系:求和sum=x+y+z和求平均分avg= sum/3.0
// 二、数据定义
int x, y, z, sum = 0; // 定义整型变量x、y、z,分别存储语文、数学、英语的成绩;定义整型变量sum,用于存储总分(初始值为0)
double avg; // 定义双精度浮点型变量avg,用于存储计算出的平均分
// 三、数据输入
cin >> x >> y >> z; // 从标准输入(如键盘)读取语文、数学、英语的成绩,并分别赋值给x、y、z
// 四、数据计算
sum = x + y + z; // 计算总分,即将三科成绩相加
avg = sum / 3.0; // 计算平均分,即总分除以3.0(确保浮点数结果),并将结果存入avg
// 五、输出结果
cout << sum << endl; // 输出总分
cout << fixed << setprecision(1) << avg; // 设置输出格式为固定小数点、保留1位小数,然后输出平均分avg
return 0; // 主函数返回0,表示程序正常结束
}
问题4:1598. 文具店的折扣
类型:基本运算、小数运算
题目描述:
花花去文具店买了 1 支笔和 1 块橡皮,已知笔x元/ 支,橡皮 y 元 / 块,文具店今天有活动,可以给顾客打 9 折(用购买总价×0.9 ),花花付给了老板 n 元,请问老板应该找给花花多少钱?
输入:
三个整数x、y、n ,分别代表了笔的单价、橡皮的单价和花花付给老板的钱(已知花花付给老板的钱 n≥x+y)。
输出:
一个小数(保留 1 位小数),代表老板应该找给花花的钱。
样例:
输入:
2 1 5
输出:
2.3
1.分析问题
- 已知:买了 1 支笔和 1 块橡皮,笔x元/支,橡皮 y 元 / 块,打 9 折。
- 未知:花花付给了老板 n 元,请问老板应该找给花花多少钱m?
- 关系:找零金额m = 实际支付金额n - 应付金额,其中应付金额为(x + y)元 × 0.9(9折)。
2.定义变量
- 定义整型变量x、y,分别存储笔和橡皮的单价;定义整型变量n,存储花花实际支付的金额。
- 定义双精度浮点型变量m,用于存储计算出的找零金额。
// 二、数据定义
int x, y, n;
double m;
3.输入数据
- 从标准输入(如键盘)读取笔和橡皮的单价以及花花实际支付的金额,并分别赋值给x、y、n。
// 三、数据输入
cin >> x >> y >> n;
4.数据计算
- 计算找零金额,即实际支付金额减去应付金额(笔和橡皮总价的9折)。
// 四、数据计算
m = n - (x + y) * 0.9;
5.输出结果
- 设置输出格式为固定小数点、保留1位小数,然后输出找零金额m。
// 五、输出结果
cout << fixed << setprecision(1) << m;
完整代码如下:
#include <bits/stdc++.h> // 包含C++标准库的头文件集合
using namespace std; // 使用std命名空间,简化后续代码中对标准库对象的引用
int main() { // 定义主函数
// 一、分析问题
// 已知:买了 1 支笔和 1 块橡皮,笔x元/支,橡皮 y 元 / 块,打 9 折
// 未知:花花付给了老板 n 元,请问老板应该找给花花多少钱m?
// 关系:找零金额m = 实际支付金额n - 应付金额,其中应付金额为(x + y)元 × 0.9(9折)
// 二、数据定义
int x, y, n; // 定义整型变量x、y,分别存储笔和橡皮的单价;定义整型变量n,存储花花实际支付的金额
double m; // 定义双精度浮点型变量m,用于存储计算出的找零金额
// 三、数据输入
cin >> x >> y >> n; // 从标准输入(如键盘)读取笔和橡皮的单价以及花花实际支付的金额,并分别赋值给x、y、n
// 四、数据计算
m = n - (x + y) * 0.9; // 计算找零金额,即实际支付金额减去应付金额(笔和橡皮总价的9折)
// 五、输出结果
cout << fixed << setprecision(1) << m; // 设置输出格式为固定小数点、保留1位小数,然后输出找零金额m
return 0; // 主函数返回0,表示程序正常结束
}
问题5:1601. 挖胡萝卜
类型:基本运算、小数运算
题目描述:
小兔朱迪挖了 x 个胡萝卜,狐狸尼克挖到胡萝卜数量是小兔挖到的 3 倍,小羊肖恩挖到胡萝卜的数量比狐狸尼克少 8 个。
请你编程计算一下狐狸尼克和小羊肖恩分别挖了几个胡萝卜,以及平均每个动物挖了几个胡萝卜?
输入:
一个整数 x 代表小兔挖走的胡萝卜的数量。
输出:
三个数,每行 1 个,第 1 个整数代表狐狸尼克挖走的胡萝卜的数量,第 2 个整数代表小羊肖恩挖走的胡萝卜的数量,第 3 个数是小数代表平均每个动物挖走了几个胡萝卜(结果保留1位小数)。
样例:
输入:
10
输出:
30
22
20.7
1.分析问题
- 已知:兔子t挖了x个胡萝卜。狐狸h挖的胡萝卜数量是兔子的3倍。小羊y挖的胡萝卜数量比狐狸少8个。
- 未知:狐狸h和小羊y各自挖了多少个胡萝卜。兔子、狐狸和小羊三者平均每人挖了多少个胡萝卜(保留一位小数)。
- 关系:h=3*t,y=h-8,avg=(t+h+y)/3 。
2.定义变量
- int t:表示兔子挖胡萝卜的数量(整数类型)。
- int h:表示狐狸挖胡萝卜的数量(整数类型)。
- int y:表示小羊挖胡萝卜的数量(整数类型)。
- double avg:表示兔子、狐狸和小羊挖胡萝卜的平均数量(浮点数类型)。
//二、数据定义
int t,h,y;
double avg;
3.输入数据
- 从标准输入(通常是键盘)接收一个整数,存储到变量t中,即兔子挖胡萝卜的数量。
//三、数据输入
cin>>t;
4.数据计算
- 计算狐狸挖胡萝卜的数量:h = t * 3。
- 计算小羊挖胡萝卜的数量:y = h - 8。
- 计算三者平均挖胡萝卜的数量:avg = (t + h + y) / 3.0。注意除以3.0是为了确保结果为浮点数。
//四、数据计算
h=t*3;
y=h-8;
avg=(t+h+y)/3.0;
5.输出结果
//五、输出结果
cout<<h<<endl<<y<<endl;
cout<<fixed<<setprecision(1)<<avg;
完整代码如下:
#include <bits/stdc++.h>
using namespace std;
int main() {
// 一、分析问题
// 已知:
// 1. 兔子t挖了x个胡萝卜。
// 2. 狐狸h挖的胡萝卜数量是兔子的3倍。
// 3. 小羊y挖的胡萝卜数量比狐狸少8个。
// 未知:
// 1. 狐狸h、小羊y挖了多少个胡萝卜?
// 2. 兔子、狐狸和小羊平均每人挖了多少个胡萝卜(保留一位小数)。
// 关系:
// h = 3 * t
// y = h - 8
// avg = (t + h + y) / 3.0
// 二、数据定义
int t, h, y; // 定义整型变量t、h、y分别表示兔子、狐狸、小羊挖胡萝卜的数量
double avg; // 定义双精度浮点型变量avg表示平均挖胡萝卜数量
// 三、数据输入
cin >> t; // 从标准输入读取兔子挖胡萝卜的数量并存储到变量t中
// 四、数据计算
h = t * 3; // 根据关系式计算狐狸挖胡萝卜的数量
y = h - 8; // 根据关系式计算小羊挖胡萝卜的数量
avg = (t + h + y) / 3.0; // 计算三者平均挖胡萝卜数量,除以3.0确保结果为浮点数
// 五、输出结果
cout << h << endl; // 输出狐狸挖胡萝卜的数量
cout << y << endl; // 输出小羊挖胡萝卜的数量
cout << fixed << setprecision(1) << avg; // 设置输出格式,保留一位小数后输出平均数
return 0; // 程序正常结束,返回值为0
}
三、感谢
如若本文对您的学习或工作有所启发和帮助,恳请您给予宝贵的支持——轻轻一点,为文章点赞;若觉得内容值得分享给更多朋友,欢迎转发扩散;若认为此篇内容具有长期参考价值,敬请收藏以便随时查阅。
每一次您的点赞、分享与收藏,都是对我持续创作和分享的热情鼓励,也是推动我不断提供更多高质量内容的动力源泉。期待我们在下一篇文章中再次相遇,共同攀登知识的高峰!