【NOI-题解】1603. 冷饮的价格?1957. 求三个数的平均数1602. 总分和平均分1598. 文具店的折扣1601. 挖胡萝卜

发布于:2024-04-11 ⋅ 阅读:(199) ⋅ 点赞:(0)

一、前言

该文章主要对小数运算的题目进行讲解。

二、问题

问题1:1603. 冷饮的价格?

类型:基本运算、小数数运算


题目描述:

暑假来了,天气特别热,花花到冷饮店来买冷饮;已知雪糕 2.5 元 / 支,碎碎冰 1.5 元 / 支,花花买了 x 支雪糕和 y 支碎碎冰,老板说今天有优惠,可以有 1 支雪糕免费,请问花花应该付给老板多少钱?

输入:

两个整数 x 和 y ,分别代表了雪糕和碎碎冰的购买数量。

输出:

一个小数,代表了花花应付给老板的金额(结果保留 1 位小数)。

样例:

输入:

3 5

输出:

12.5

在这里插入图片描述


1.分析问题

  1. 已知:花花买了 x 支雪糕和 y 支碎碎冰。
  2. 未知:花花应该付给老板多少钱?
  3. 关系:总价=单价*数量。

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.分析问题

  1. 已知:语文、数学、英语的三门期中考试成绩。
  2. 未知:平均分。
  3. 关系:求平均分公式。

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.分析问题

  1. 已知:小明同学语文、数学、英语分别考了 x、y、z 分。
  2. 未知:他的总分和平均分分别考了多少分?
  3. 关系:求和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 支笔和 1 块橡皮,笔x元/支,橡皮 y 元 / 块,打 9 折。
  2. 未知:花花付给了老板 n 元,请问老板应该找给花花多少钱m?
  3. 关系:找零金额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.分析问题

  1. 已知:兔子t挖了x个胡萝卜。狐狸h挖的胡萝卜数量是兔子的3倍。小羊y挖的胡萝卜数量比狐狸少8个。
  2. 未知:狐狸h和小羊y各自挖了多少个胡萝卜。兔子、狐狸和小羊三者平均每人挖了多少个胡萝卜(保留一位小数)。
  3. 关系: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
}

三、感谢

如若本文对您的学习或工作有所启发和帮助,恳请您给予宝贵的支持——轻轻一点,为文章点赞;若觉得内容值得分享给更多朋友,欢迎转发扩散;若认为此篇内容具有长期参考价值,敬请收藏以便随时查阅。

每一次您的点赞、分享与收藏,都是对我持续创作和分享的热情鼓励,也是推动我不断提供更多高质量内容的动力源泉。期待我们在下一篇文章中再次相遇,共同攀登知识的高峰!

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到