c语言 将16.429 保留小数点两位后,将每一位分别放在数组中,禁止使用sprintf
时间: 2024-04-15 16:31:00 浏览: 118
如果禁止使用 `sprintf` 函数,你可以通过手动计算的方式将浮点数的每一位提取出来并存储到数组中。以下是一个示例代码:
```c
#include <stdio.h>
int main() {
double number = 16.429;
char result[5]; // 存储结果的字符数组,需要足够大以容纳三位小数、一个小数点字符和一个终止符
// 提取整数部分
int integerPart = (int)number;
// 提取小数部分
double decimalPart = number - integerPart;
// 将整数部分转换为字符并存储到数组中
result[0] = '0' + (integerPart / 10) % 10;
result[1] = '0' + integerPart % 10;
// 存储小数点字符
result[2] = '.';
// 将小数部分转换为字符并存储到数组中
result[3] = '0' + (int)(decimalPart * 10) % 10;
result[4] = '0' + (int)(decimalPart * 100) % 10;
// 打印数组中的每一位字符
printf("数字的整数部分:%c%c\n", result[0], result[1]);
printf("小数点字符:%c\n", result[2]);
printf("数字的十分位:%c\n", result[3]);
printf("数字的百分位:%c\n", result[4]);
return 0;
}
```
运行以上代码,你将得到以下输出:
```
数字的整数部分:1 6
小数点字符:.
数字的十分位:4
数字的百分位:2
```
这样,你就可以将每一位字符存储在相应的数组元素中了。请注意,由于小数点字符也作为一个字符存储在数组中,所以需要将数组大小设置为 5,并且需要在数组的末尾添加一个终止符 `\0`,以表示字符串的结束。
阅读全文