c语言 输入123.4 输出4.321
时间: 2024-10-17 15:03:00 浏览: 29
C语言编程实验.docx
在C语言中,直接从用户输入读取浮点数(如123.4)并反转其小数和整数部分是不可能的,因为这种操作在标准库中并没有提供现成的方法。然而,你可以通过编程逻辑实现类似的功能,比如先分离出小数部分,再反转它们,但最后的结果需要以字符串的形式存储和显示。
下面是一个简单的示例,使用`printf`函数配合字符串处理来达到类似的效果:
```c
#include <stdio.h>
#include <stdlib.h>
void reverse_number(double num) {
char* str = malloc(sizeof(char) * 16); // 预留空间
sprintf(str, "%.3f", num);
size_t len = strlen(str);
if (str[len - 2] == '.') { // 判断是否包含小数点
char* decimal = str + len - 1; // 小数点前的部分
for (size_t i = len - 2; i > 0; i--) {
str[i] = str[i + 1];
}
str[0] = '.';
str[len - 1] = '\0'; // 结尾添加'\0'
printf("Reversed number as string: %s\n", str);
} else {
printf("Input is an integer, cannot reverse the digits.\n");
}
free(str); // 注意释放内存
}
int main() {
double input = 123.4;
reverse_number(input);
return 0;
}
```
注意这个例子只是一个模拟,并非真正的数学意义上的逆转,因为浮点数的精度问题,可能会有微小的误差。如果需要严格的数字顺序逆转,建议考虑使用固定长度的数组或其他数据结构存储原数值,然后逐位操作。
阅读全文