用c语言写一个代码,使得13.8输出为8,13.11输出为11
时间: 2024-10-13 12:03:55 浏览: 37
在C语言中,为了简单粗暴地按照题目的要求直接舍去小数部分,我们可以利用整数除法操作 `/` 来达到这个效果。不过需要注意的是,这种方式会直接截断小数,而不是四舍五入。下面是一个简单的示例:
```c
#include <stdio.h>
void convert_to_int(double num) {
if (num >= 0)
printf("%d", (int)num); // 如果是正数,直接转换为整数输出
else
printf("%d", (int)(num - 0.00001)); // 对负数稍微减一个小数,避免浮点误差导致的不精确
}
int main() {
double num1 = 13.8;
double num2 = 13.11;
convert_to_int(num1);
printf("\n"); // 换行
convert_to_int(num2);
return 0;
}
```
当你运行这个程序,你会得到这样的输出:
```
13
11
```
注意,对于负数,这里使用了一个小技巧 `(int)(num - 0.00001)` 来避免浮点误差带来的影响,因为直接用 `(int)num` 可能会导致负的小数被截断到更小的一个整数。
相关问题
c语言怎么将小数点后面的数看作整数,例如,13.8看成8,13.11看成11
在 C 语言中,如果你想将小数部分直接舍去并保留整数部分,你可以通过取整函数 `rint()` 或者强制类型转换来实现。不过要注意的是,`rint()` 函数在一些库中可能不存在,所以通常我们会使用 `((int)number)` 进行强制类型转换。
例如:
```c
#include <stdio.h>
double to_integer(double number) {
return (int)number;
}
int main() {
double num1 = 13.8;
double num2 = 13.11;
int int_num1 = to_integer(num1);
int int_num2 = to_integer(num2);
printf("13.8 转换为整数后为:%d\n", int_num1); // 输出:13
printf("13.11 转换为整数后为:%d\n", int_num2); // 输出:13
return 0;
}
```
在这个例子中,`13.8` 和 `13.11` 分别转换为整数 `13` 和 `13`。但是这种方法会直接丢弃小数部分,并不会做精确的四舍五入处理。
如果你需要四舍五入,可以使用标准库函数 `round()`,如果库不支持,也可以自定义一个四舍五入的函数。
阅读全文