7-17 实数四舍五入后的相加运算

本题目实现实数保留两位小数的四舍五入存储后,再相加。

输入格式:

输入两个双精度实数A,B。

输出格式:

第一行输出A+B的真实值

第二行输出A、B进行四舍五入后再相加后的值。

输入样例:

12.345,4.896

输出样例:

17.241000

17.250000


#include"stdio.h"
double fun(double b){
    int a=(int)(b*1000);
    if((a%10)>4)
        a=a+5;
        a=a/10;
        b=a/100.0;
    return b;
}
int main(){
    double a,b,sum;
    scanf("%lf,%lf",&a,&b);
    printf("%f\n",a+b);
    a=fun(a);
    b=fun(b);
    printf("%f",a+b);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
1. 编写一个类实现复数的运算。 复数类ComplexNumber的属性: m_dRealPart:实部,代表复数的实数部分。 m_dImaginPart:虚部,代表复数的虚数部分。 复数类ComplexNumber的方法: ComplexNumber():构造函数,将实部、虚部都置为0。 ComplexNumber(double r,double i):构造函数,创建复数对象的同时完成复数的实部、虚部的初始化,r为实部的初值,i为虚部的初值。 getRealPart():获得复数对象的实部。 getImaginPart():获得复数对象的虚部。 setRealPart(double d):把当前复数对象的实部设置为给定的形式参数的数字。 setImaginaryPart(double d):把当前复数对象的虚部设置为给定的形式参数的数字。 complexAdd(ComplexNumber c):当前复数对象与形式参数复数对象相加,所得的结果也是复数值,返回给此方法的调用者。 complexAdd(double c):当前复数对象与形式参数实数对象相加,所得的结果仍是复数值,返回给此方法的调用者。 complexMinus(ComplexNumber c) :当前复数对象与形式参数复数对象相减,所得的结果也是复数值,返回给此方法的调用者。 complexMinus(double c) :当前复数对象与形式参数实数对象相减,所得的结果仍是复数值,返回给此方法的调用者。 complexMulti(ComplexNumber c):当前复数对象与形式参数复数对象相乘,所得的结果也是复数值,返回给此方法的调用者。 complexMulti(double c):当前复数对象与形式参数实数对象相乘,所得的结果仍是复数值,返回给此方法的调用者。 toString():把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中和分别为实部和虚部的数据。 2. 编写Java Application程序使用上题定义的类,检查类定义是否正确。
### 回答1: 您好,我可以为您解答这个编程问题。以下是使用同一个函数名add重载实现对两个整数、三个整数、两个实数、三个实数相加的代码: ```python def add(*args): if all(isinstance(arg, int) for arg in args): return sum(args) elif all(isinstance(arg, float) for arg in args): return sum(args) else: raise TypeError("Invalid argument types") ``` 在每次循环中完成对2个整数、3个整数、2个实数、3个实数、1个整数和2个实数、2个整数和1个实数相加运算的代码如下: ```python # 2个整数 a = 1 b = 2 result = add(a, b) print(f"{a} + {b} = {result}") # 3个整数 a = 1 b = 2 c = 3 result = add(a, b, c) print(f"{a} + {b} + {c} = {result}") # 2个实数 a = 1.0 b = 2.0 result = add(a, b) print(f"{a} + {b} = {result}") # 3个实数 a = 1.0 b = 2.0 c = 3.0 result = add(a, b, c) print(f"{a} + {b} + {c} = {result}") # 1个整数和2个实数 a = 1 b = 2.0 c = 3.0 result = add(a, b, c) print(f"{a} + {b} + {c} = {result}") # 2个整数和1个实数 a = 1 b = 2 c = 3.0 result = add(a, b, c) print(f"{a} + {b} + {c} = {result}") ``` 当输入数据时,程序会提示输入的数据类型,您可以根据提示输入相应的数据类型。 ### 回答2: 在C++中,函数的重载是指在同一个作用域内,可以有多个同名的函数,但它们的参数列表必须不同(参数的类型和/或个数不同)。根据题目要求,可以使用同一个函数名add重载实现对不同类型和个数的数字进行相加运算。 首先,根据输入的数据类型进行选择相应的函数进行运算。具体实现如下: ```cpp #include<iostream> // 两个整数相加 int add(int a, int b) { return a + b; } // 三个整数相加 int add(int a, int b, int c) { return a + b + c; } // 两个实数相加 double add(double a, double b) { return a + b; } // 三个实数相加 double add(double a, double b, double c) { return a + b + c; } int main() { // 输入数据类型选择,1表示整数,2表示实数 int choice; std::cout << "请输入要相加的数据类型(1表示整数,2表示实数):"; std::cin >> choice; // 根据数据类型选择对应的相加函数进行计算 if (choice == 1) { // 两个整数相加 int a, b; std::cout << "请输入两个整数:" << std::endl; std::cin >> a >> b; std::cout << "两个整数的和为:" << add(a, b) << std::endl; // 三个整数相加 int c; std::cout << "请输入三个整数:" << std::endl; std::cin >> a >> b >> c; std::cout << "三个整数的和为:" << add(a, b, c) << std::endl; // 两个整数和一个实数相加 double d; std::cout << "请输入一个实数:" << std::endl; std::cin >> d; std::cout << "两个整数和一个实数的和为:" << add(a, b, d) << std::endl; } else if (choice == 2) { // 两个实数相加 double a, b; std::cout << "请输入两个实数:" << std::endl; std::cin >> a >> b; std::cout << "两个实数的和为:" << add(a, b) << std::endl; // 三个实数相加 double c; std::cout << "请输入三个实数:" << std::endl; std::cin >> a >> b >> c; std::cout << "三个实数的和为:" << add(a, b, c) << std::endl; // 一个整数和两个实数相加 int d; std::cout << "请输入一个整数:" << std::endl; std::cin >> d; std::cout << "一个整数和两个实数的和为:" << add(d, a, b) << std::endl; } else { std::cout << "输入错误!" << std::endl; } return 0; } ``` 根据用户的输入选择对应的数据类型,然后根据具体的数据类型选择相应的函数进行相加运算。最后输出结果。 ### 回答3: 函数重载是指在同一个作用域内,函数的名称相同但参数列表不同的多个函数。可以根据函数的参数类型和个数的不同,使同一个函数名可以实现不同的功能。 下面是使用同一个函数名add重载实现对两个整数、三个整数、两个实数、三个实数相加的示例代码: ```cpp #include<iostream> using namespace std; int add(int a, int b) { return a + b; } int add(int a, int b, int c) { return a + b + c; } double add(double a, double b) { return a + b; } double add(double a, double b, double c) { return a + b + c; } int main() { int a, b, c; double x, y, z; cout << "请输入两个整数: "; cin >> a >> b; cout << "相加的结果为: " << add(a, b) << endl; cout << "请输入三个整数: "; cin >> a >> b >> c; cout << "相加的结果为: " << add(a, b, c) << endl; cout << "请输入两个实数: "; cin >> x >> y; cout << "相加的结果为: " << add(x, y) << endl; cout << "请输入三个实数: "; cin >> x >> y >> z; cout << "相加的结果为: " << add(x, y, z) << endl; return 0; } ``` 在每次循环中完成对2个整数、3个整数、2个实数、3个实数、1个整数和2个实数、2个整数和1个实数相加运算可使用if语句进行判断,根据输入数据的类型调用相应的函数进行相加计算。 希望以上回答对您有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

努怒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值