编写函数,它的功能是:保留实数的n位小数,且最后一位进行银行家舍入,返回该数。比如,1.235,保留两位小数后为 1.23。在main 数中验证。要求:实数和保留小数位数 n 在 main 函数中由键盘输入
时间: 2024-09-09 18:07:13 浏览: 46
在C语言中,你可以使用`<math.h>`库中的`rint()`函数来进行银行家舍入(四舍五入)。以下是一个简单的函数,它接收一个double类型的参数并保留指定的小数位数:
```c
#include <stdio.h>
#include <math.h>
// 定义函数,保留n位小数并银行家舍入
double round_to_n_places(double num, int n) {
double factor = pow(10, n);
return rint(num * factor) / factor;
}
int main() {
// 输入实数和要保留的小数位数
double input_number;
int decimal_places;
printf("请输入一个实数: ");
scanf("%lf", &input_number);
printf("请输入要保留的小数位数: ");
scanf("%d", &decimal_places);
// 使用函数进行处理并输出结果
double rounded_number = round_to_n_places(input_number, decimal_places);
printf("保留 %d 位小数后的银行家舍入结果是: %.{1,%df}\n",
decimal_places, rounded_number);
// 验证
if (input_number == rounded_number) {
printf("验证成功,输入数值等于舍入后的结果。\n");
} else {
printf("验证失败,输入数值不等于舍入后的结果。\n");
}
return 0;
}
```
在这个例子中,`round_to_n_places`函数先计算出10的幂,然后用这个幂乘以输入的数字,进行四舍五入后再除以相同的幂,从而达到保留指定小数位数的效果。
阅读全文
相关推荐

















