东方 - 基本运算(2)- 小数运算

解析部分:

小数运算

1031. 温度转换

问题描述

编写一个程序,将摄氏温度转换为华氏温度。

解题思路

根据给定的转换公式 f = (9 / 5) * c + 32,可以将摄氏温度(c)转换为华氏温度(f)。

代码实现
#include <iostream>
#include <iomanip> // 用于控制输出格式
using namespace std;

int main() {
    int c; // 定义整型变量c存储摄氏温度
    cin >> c; // 从标准输入读取摄氏温度

    // 转换为华氏温度
    double f = 9.0 / 5 * c + 32;

    // 设置输出格式为固定的,保留两位小数
    cout << fixed << setprecision(2) << f; // 输出华氏温度

    return 0; // 程序正常结束
}
代码解析
  1. int c;:定义一个整型变量c来存储用户输入的摄氏温度。
  2. cin >> c;:使用cin从标准输入读取摄氏温度。
  3. double f = 9.0 / 5 * c + 32;:根据转换公式计算华氏温度,注意使用浮点数进行计算以保证精确度。
  4. cout << fixed << setprecision(2) << f;:设置输出格式为固定小数点表示法,并保留两位小数来输出华氏温度。
    通过以上步骤,程序能够读取用户输入的摄氏温度,使用给定的公式转换为华氏温度,并以保留两位小数的格式输出最终的华氏温度。

1603. 冷饮的价格

问题描述

花花在炎热的夏日去冷饮店买了雪糕和碎碎冰,雪糕每支2.5元,碎碎冰每支1.5元。店家今天有优惠,买雪糕可以有1支免费。需要计算花花应该付给老板多少钱。

解题思路
  1. 计算雪糕总价:由于有一支免费,所以实际需要支付的雪糕数量是(x-1)。雪糕总价为((x-1) \times 2.5)元。
  2. 计算碎碎冰总价:碎碎冰的总价为(y \times 1.5)元。
  3. 计算总价:雪糕总价加上碎碎冰总价即为花花应付给老板的总金额。
代码实现
#include <iostream>
#include <iomanip> // 用于控制输出格式
using namespace std;

int main() {
    int x, y; // x代表雪糕的数量,y代表碎碎冰的数量
    cin >> x >> y; // 读取输入的数量

    // 计算总金额
    double total = (x - 1) * 2.5 + y * 1.5;

    // 输出结果,保留一位小数
    cout << fixed << setprecision(1) << total << endl;

    return 0; // 程序结束
}
代码解析
  • int x, y; 定义两个整数变量来存储雪糕和碎碎冰的数量。
  • cin >> x >> y; 通过标准输入读取这两个数量。
  • double total = (x - 1) * 2.5 + y * 1.5; 根据题目描述计算出花花应该付给老板的总金额。
  • cout << fixed << setprecision(1) << total << endl; 设置输出格式为固定小数点表示,并保留一位小数来输出总金额。

1703. 小明买水果

问题描述

小明去超市买了若干斤水果,你能根据水果的单价,小明买的水果数量,编一个程序计算出总金额,并打印出清单。

解题思路

要编写一个程序来计算小明购买水果的总金额,我们可以先将商品的单价乘以商品的数量得到总金额。题目要求单价保留两位小数,数量为整数,而总金额需要去掉小数部分。

  1. 读入数据:从输入中读取商品的单价(小数)和商品的数量(整数)。
  2. 计算总金额:商品的单价乘以数量得到总金额。
  3. 输出结果:输出包括商品的单价(保留两位小数)、数量(整数)和总金额(去掉小数部分)。
代码实现
#include <iostream>
#include <iomanip> // 引入用于控制输出格式的库
using namespace std;

int main() {
    double price; // 定义单价变量
    int quantity; // 定义数量变量
    cin >> price >> quantity; // 读取单价和数量

    // 计算总金额
    double total = price * quantity;

    // 输出单价(保留两位小数),数量(整数),总金额(去掉小数部分)
    cout << fixed << setprecision(2) << price << " " << quantity << " " << int(total) << endl;

    return 0; // 程序结束
}
代码解析
  1. double price; int quantity;:定义两个变量 price 和 quantity 来分别存储从输入中读取的单价(小数)和数量(整数)。
  2. cin >> price >> quantity;:使用标准输入读取单价和数量。
  3. double total = price * quantity;:计算总金额。
  4. cout << fixed << setprecision(2) << price << " " << quantity << " " << int(total) << endl;:按照要求输出单价(保留两位小数)、数量(整数)以及去掉小数的总金额。

1957. 求三个数的平均数

问题描述

小雅刚刚考完语文、数学、英语的三门期中考试,她想请你编个程序来帮她算算她的平均分。

解题思路

要计算小雅三科考试的平均分,我们需要将这三个分数相加,然后除以3,最后保留三位小数。

代码实现
#include <iostream>
#include <iomanip> // 用于控制输出格式
using namespace std;

int main() {
    int score1, score2, score3; // 定义三个变量存储分数
    cin >> score1 >> score2 >> score3; // 读取分数

    // 计算平均值
    double average = (score1 + score2 + score3) / 3.0;

    // 输出平均值,保留三位小数
    cout << fixed << setprecision(3) << average << endl;

    return 0; // 程序结束
}
代码解析
  • int score1, score2, score3; 定义三个整数变量来存储从输入读取的三个分数。
  • cin >> score1 >> score2 >> score3; 从标准输入读取三个分数。
  • double average = (score1 + score2 + score3) / 3.0; 计算平均值,注意使用浮点数进行除法运算,以保证结果的精确度。
  • cout << fixed << setprecision(3) << average << endl; 以固定小数

点格式输出平均值,并保留三位小数。这样,程序能够准确地计算出三门课程成绩的平均分,并按照要求格式输出结果。

1602. 总分和平均分

问题描述

期末考试成绩出来了,小明同学语文、数学、英语分别考了 x、y、z 分,请编程帮助小明计算一下,他的总分和平均分分别考了多少分?

解题思路

要帮助小明计算总分和平均分,我们可以先计算总分,然后根据总分计算平均分,并保留一位小数。

  1. 计算总分:总分是三门课程成绩的和。
  2. 计算平均分:平均分是总分除以3,保留一位小数。
代码实现
#include <iostream>
#include <iomanip> // 用于控制输出格式
using namespace std;

int main() {
    int x, y, z; // 定义变量存储语文、数学、英语的成绩
    cin >> x >> y >> z; // 读取成绩

    // 计算总分
    int total = x + y + z;

    // 计算平均分,转换成double进行除法运算以保证精度
    double average = total / 3.0;

    // 输出总分
    cout << total << endl;

    // 输出平均分,保留一位小数
    cout << fixed << setprecision(1) << average << endl;

    return 0; // 程序结束
}
代码解析
  • int x, y, z; 定义三个整数变量来存储小明的语

文、数学、英语成绩。

  • cin >> x >> y >> z; 通过标准输入读取这三个成绩。
  • int total = x + y + z; 计算总分,简单地将三个成绩相加。
  • double average = total / 3.0; 计算平均分,将总分除以3,并且使用浮点数进行除法运算,以保证结果的精度。
  • cout << total << endl; 输出总分。
  • cout << fixed << setprecision(1) << average << endl; 设置输出格式为固定小数点格式,并保留一位小数后输出平均分。

通过以上步骤,程序能够准确地计算出小明三门课程的总分和平均分,并按照要求格式输出结果。

1598. 文具店的折扣

问题描述

花花在文具店购买了一支笔和一块橡皮,店内进行打折活动,总价打9折后,花花付给了老板n元。需要计算老板应该找回给花花多少钱。

解题思路
  1. 首先计算笔和橡皮的原价总和。
  2. 然后计算打9折后的实际应付金额。
  3. 根据花花实际付给老板的金额,计算找回的金额。
代码实现
#include <iostream>
#include <iomanip> // 用于控制输出格式
using namespace std;

int main() {
    int x, y, n; // 分别代表笔的单价、橡皮的单价和花花付给老板的钱
    cin >> x >> y >> n; // 读取输入值

    double totalCost = (x + y) * 0.9; // 计算打折后的总成本
    double change = n - totalCost; // 计算找回的钱

    // 输出找回的钱,保留一位小数
    cout << fixed << setprecision(1) << change << endl;

    return 0; // 程序结束
}
代码解析
  • int x, y, n; 定义变量存储输入的笔的单价、橡皮的单价以及花花付给老板的金额。
  • cin >> x >> y >> n; 从标准输入读取这些值。
  • double totalCost = (x + y) * 0.9; 计算折扣后的总成本。
  • double change = n - totalCost; 计算并存储找回的金额。
  • cout << fixed << setprecision(1) << change << endl; 设置输出格式为固定小数点格式,并保留一位小数后输出找回的金额。

1601. 挖胡萝卜

问题描述

小兔朱迪挖了x个胡萝卜,狐狸尼克挖到的胡萝卜数量是小兔的3倍,小羊肖恩挖到的胡萝卜数量比狐狸尼克少8个。需要计算狐狸尼克和小羊肖恩各自挖了多少胡萝卜,以及三者平均每个动物挖了几个胡萝卜。

解题思路
  1. 计算狐狸尼克挖到的胡萝卜数量:狐狸尼克挖到的胡萝卜数量是小兔朱迪的3倍。
  2. 计算小羊肖恩挖到的胡萝卜数量:小羊肖恩挖到的胡萝卜数量是狐狸尼克的数量减8。
  3. 计算平均数量:将小兔朱迪、狐狸尼克、小羊肖恩挖到的胡萝卜数量相加,然后除以3。
代码实现
#include <iostream>
#include <iomanip> // 用于控制输出格式
using namespace std;

int main() {
    int x; // 定义变量存储小兔挖到的胡萝卜数量
    cin >> x; // 读取输入值

    int nick = x * 3; // 计算狐狸尼克挖到的胡萝卜数量
    int shaun = nick - 8; // 计算小羊肖恩挖到的胡萝卜数量
    double average = (x + nick + shaun) / 3.0; // 计算平均每个动物挖到的胡萝卜数量

    // 输出狐狸尼克和小羊肖恩挖到的胡萝卜数量,以及平均数量
    cout << nick << endl;
    cout << shaun << endl;
    cout << fixed << setprecision(1) << average << endl;

    return 0; // 程序结束
}
代码解析
  • int x;cin >> x; 用于读取小兔朱迪挖到的胡萝卜数量。
  • int nick = x * 3; 根据题目描述计算狐狸尼克挖到的胡萝卜数量。
  • int shaun = nick - 8; 计算小羊肖恩挖到的胡萝卜数量。
  • double average = (x + nick + shaun) / 3.0; 计算并存储平均每个动物挖到的胡萝卜数量。
  • 最后,分别输出狐狸尼克和小羊肖恩挖到的胡萝卜数量以及三者平均挖到的胡萝卜数量,平均数量保留一位小数。

1329. 求梯形的面积

问题描述

从键盘读入一个梯形的上底(a)、下底(b)和高(h),请计算表梯形的面积。

解题思路

要计算梯形的面积,我们可以直接应用梯形面积的计算公式:[S = \frac{(a+b) \times h}{2}]。这里,(a)是梯形的上底,(b)是梯形的下底,(h)是梯形的高,(S)是梯形的面积。

  1. 读入数据:从输入中读取三个整数,分别代表梯形的上底(a)、下底(b)和高(h)。
  2. 应用公式:根据梯形面积的计算公式来求解。
  3. 输出结果:输出计算得到的梯形面积,结果保留一位小数。
代码实现
#include <iostream>
#include <iomanip> // 引入用于控制输出格式的库
using namespace std;

int main() {
    int a, b, h; // 定义整型变量 a, b, h 分别表示梯形的上底、下底和高
    cin >> a >> b >> h; // 通过标准输入读取 a, b, h 的值

    // 使用梯形面积公式进行计算
    double area = (a + b) * h / 2.0;

    // 输出计算结果,保留一位小数
    cout << fixed << setprecision(1) << area << endl;

    return 0; // 程序正常结束
}
代码解析
  • int a, b, h;:定义三个整型变量abh来存储用户输入的梯形的上底、下底和高。
  • cin >> a >> b >> h;:使用cin从标准输入读取梯形的上底、下底和高。
  • double area = (a + b) * h / 2.0;:根据梯形面积的计算公式计算出面积。
  • cout << fixed << setprecision(1) << area << endl;:设置cout以固定小数点格式输出,并保留一位小数,然后输出计算结果。

1005. 已知一个圆的半径,求解该圆的面积和周长

解题思路

已知圆的半径(r),可以使用以下公式计算圆的面积(A)和周长(C):

  • 圆的面积 (A = π r^2)
  • 圆的周长 (C = 2π r)
    其中,(π)约等于3.1415926。
代码实现
#include <iostream>
#include <iomanip> // 用于控制输出格式
using namespace std;

int main() {
    int r; // 定义变量存储圆的半径
    cin >> r; // 读取半径

    const double pi = 3.1415926; // 定义π的值

    // 计算圆的面积
    double area = pi * r * r;
    // 计算圆的周长
    double circumference = 2 * pi * r;

    // 输出圆的面积,保留两位小数
    cout << fixed << setprecision(2) << area << endl;
    // 输出圆的周长,保留两位小数
    cout << fixed << setprecision(2) << circumference << endl;

    return 0; // 程序结束
}
代码解析
  • int r; 定义一个整数变量来存储用户输入的圆的半径。
  • cin >> r; 通过标准输入读取半径的值。
  • const double pi = 3.1415926; 定义π的值为3.1415926。
  • 使用圆的面积和周长的计算公式计算得到结果,并分别输出。输出时使用 setprecision(2) 来保留两位小数。

1337. 求花坛的面积

问题描述

龙湖校区有一个圆形花坛,量得花坛周围的篱笆长是(x)米,请问该花坛的面积是多少平方米?(假设(\pi=3.14))。

解题思路

给定圆形花坛的篱笆长度,即圆的周长(C = x),可以使用周长公式(C = 2π r)来求解圆的半径(r)。有了半径,就可以使用面积公式(A = π r^2)来计算花坛的面积。

  1. 求解半径:根据周长公式(r = C / (2π))。
  2. 计算面积:将求得的半径代入面积公式(A = π r^2)。
代码实现
#include <iostream>
#include <iomanip> // 用于控制输出格式
using namespace std;

int main() {
    double x; // 定义变量存储花坛的篱笆长度
    cin >> x; // 读取长度

    const double pi = 3.14; // 定义π的值
    double r = x / (2 * pi); // 计算半径
    double area = pi * r * r; // 计算面积

    // 输出花坛的面积,保留两位小数
    cout << fixed << setprecision(2) << area << endl;

    return 0; // 程序结束
}
代码解析
  • double x; 定义一个双精度浮点变量来存储花坛篱笆的长度。
  • cin >> x; 从标准输入读取花坛篱笆的长度。
  • const double pi = 3.14; 使用(π)的近似值3.14。
  • double r = x / (2 * pi); 根据篱笆长度计算圆的半径。
  • double area = pi * r * r; 使用圆的面积公式计算花坛的面积。
  • cout << fixed << setprecision(2) << area << endl; 设置输出格式为固定小数点格式,并保留两位小数输出花坛的面积。

1338. 求圆环的面积

问题描述

给定圆环的外圆半径(r1)和内圆半径(r2),计算圆环铁片的面积。

解题思路

圆环面积可以通过计算外圆的面积减去内圆的面积来得到。外圆的面积公式为A外 = π * r1 *r1。内圆的面积公式为A内 = π * r2 *r2。圆环的面积即为两者之差:A外 - A内。

代码实现
#include <iostream>
#include <iomanip> // 用于控制输出格式
using namespace std;

int main() {
    int r1, r2; // 定义变量存储外圆和内圆的半径
    cin >> r1 >> r2; // 读取半径

    const double pi = 3.14; // 定义π的值
    double areaOuter = pi * r1 * r1; // 计算外圆的面积
    double areaInner = pi * r2 * r2; // 计算内圆的面积

    double areaRing = areaOuter - areaInner; // 计算圆环的面积

    // 输出圆环的面积,保留两位小数
    cout << fixed << setprecision(2) << areaRing << endl;

    return 0; // 程序结束
}
代码解析
  • int r1, r2; 定义两个整数变量来存储外圆和内圆的半径。
  • cin >> r1 >> r2; 从标准输入读取这两个半径的值。
  • const double pi = 3.14; 使用π的近似值3.14。
  • double areaOuter = pi * r1 * r1; 根据外圆半径计算外圆的面积。
  • double areaInner = pi * r2 * r2; 根据内圆半径计算内圆的面积。
  • double areaRing = areaOuter - areaInner; 通过外圆面积减去内圆面积得到圆环的面积。
  • cout << fixed << setprecision(2) << areaRing << endl; 设置输出格式为固定小数点格式,并保留两位小数输出圆环的面积。

1317. 正多边形每个内角的度数

问题描述

需要根据正多边形的边数计算每个内角的度数。

解题思路

正多边形内角和的公式为(n - 2) * 180,其中 n 是多边形的边数。因为正多边形的所有内角相等,每个内角的度数可以通过将内角和除以边数 n 得到,即:
每个内角的度数 = ((n - 2) * 180)/ n。

代码实现
#include <iostream>
#include <iomanip> // 引入用于控制输出格式的库
using namespace std;

int main() {
    int n; // 定义整型变量 n 存储正多边形的边数
    cin >> n; // 通过标准输入读取 n 的值

    // 计算每个内角的度数
    double angle = (n - 2) * 180.0 / n;

    // 输出每个内角的度数,保留一位小数
    cout << fixed << setprecision(1) << angle << endl;

    return 0; // 程序结束
}
代码解析
  • int n; 定义一个整型变量n来存储用户输入的正多边形的边数。
  • cin >> n; 使用cin从标准输入读取正多边形的边数。
  • 使用公式计算每个内角的度数:double angle = (n - 2) * 180.0 / n;
  • 使用cout << fixed << setprecision(1) << angle << endl;设置输出格式为固定小数点格式,并保留一位小数后输出每个内角的度数。

1565. 成绩(score)

问题描述

牛牛想要计算自己在C++入门课程中的总成绩,其中作业成绩占20%,小测成绩占30%,期末考试成绩占50%。

解题思路

要计算课程的总成绩,我们可以根据给出的百分比权重来加权平均这三项成绩。具体公式如下:

总成绩 = A * 0.2 + B * 0.3 + C * 0.5

其中,(A)是作业成绩,(B)是小测成绩,(C)是期末考试成绩。

代码实现
#include <iostream>
using namespace std;

int main() {
    int A, B, C; // 分别代表作业成绩、小测成绩和期末考试成绩
    cin >> A >> B >> C; // 从标准输入读取这三项成绩

    // 根据给定公式计算总成绩
    int totalScore = static_cast<int>(A * 0.2 + B * 0.3 + C * 0.5);

    // 输出总成绩
    cout << totalScore << endl;

    return 0; // 程序结束
}
代码解析
  • int A, B, C; 定义三个整数变量来存储从标准输入读取的作业成绩、小测成绩和期末考试成绩。
  • cin >> A >> B >> C; 使用cin从标准输入读取这三项成绩。
  • int totalScore = static_cast(A * 0.2 + B * 0.3 + C * 0.5); 根据给定的百分比权重计算总成绩,使用static_cast<int>确保结果为整数。
  • cout << totalScore << endl; 输出计算得到的总成绩。

1345. 玫瑰花圃

问题描述

在一个n×n的红玫瑰花圃中(n是大于等于5的奇数),现在要求在花圃的中间一行、中间一列以及4个角落种植粉色玫瑰。需要计算粉色玫瑰占整个花圃面积的百分比。

解题思路

对于一个n×n的红玫瑰花圃,要在最中间的一行、最中间的一列以及4个顶点处种植粉色玫瑰。可以通过以下步骤计算粉玫瑰占地面积的百分比:

  1. 总面积为(n^2)。
  2. 最中间的一行和最中间的一列共有(2n - 1)个位置(中间的交点重复计算了一次)。
  3. 加上4个顶点,总共有(2n + 3)个位置种植了粉色玫瑰。
  4. 粉玫瑰占地面积的百分比为((2n + 3) / (n * n)) * 100%。
代码实现
#include <iostream>
#include <iomanip> // 用于控制输出格式
using namespace std;

int main() {
    int n; // 定义变量存储花圃的大小
    cin >> n; // 读取花圃的大小

    // 计算粉玫瑰占地百分比
    double percentage = (double)(2 * n + 3) / (n * n) * 100;

    // 输出粉玫瑰占地百分比,保留一位小数,显示为百分比的形式
    cout << fixed << setprecision(1) << percentage << "%" << endl;

    return 0; // 程序结束
}
代码解析
  • int n; 定义一个整型变量n来存储用户输入的花圃的大小。
  • cin >> n; 使用cin从标准输入读取花圃的大小。
  • double percentage = (double)(2 * n + 3) / (n * n) * 100; 根据给定公式计算粉玫瑰占地面积的百分比。注意,乘以100是为了将结果转换为百分比形式,同时将分子转换为double类型,以保证计算的精确度。
  • cout << fixed << setprecision(1) << percentage << “%”; 使用cout输出计算结果,fixedsetprecision(1)确保输出结果为固定小数点格式,且保留一位小数。
  • 44
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天秀信息学奥赛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值