输入一个不小于100且小于1000,同时包括小数点后一位的一个浮点数,例如123.4 ,要求把这个数字翻转过来,变成 4.321 并输出。用c语言编译
时间: 2024-10-08 16:02:37 浏览: 22
在C语言中,你可以通过以下几个步骤来实现这个功能:
1. 首先声明两个变量,一个用于存储输入的原始浮点数,另一个用于存储翻转后的结果。
2. 使用`scanf`函数读取用户输入的浮点数,并保留小数点后一位。
3. 将输入的浮点数转换成字符串,这样可以方便地操作每一位数字。
4. 创建一个新的字符串来存储翻转后的数字,从小数点后向前遍历并添加每位数字。
5. 最后,将翻转后的字符串转换回浮点数并输出。
下面是一个简单的C程序示例:
```c
#include <stdio.h>
#include <string.h>
// 函数用来反转浮点数的小数部分
void reverse_float(float num) {
char str[6]; // 存储最多四位数字,包括小数点
sprintf(str, "%.1f", num);
char reversed_str[6] = {0};
int i = strlen(str) - 1;
while (i >= 0 && str[i] != '.') {
reversed_str[i] = str[i];
i--;
}
reversed_str[i] = '.';
for (int j = 0; j <= i; j++) {
reversed_str[j] = reversed_str[j] - '0';
}
float result = atof(reversed_str); // 转换回浮点数
printf("Reversed number: %.1f\n", result);
}
int main() {
float input;
printf("Enter a floating point number between 100 and 999 with one decimal place: ");
scanf("%f", &input);
if (input >= 100.0 && input < 1000.0) {
reverse_float(input);
} else {
printf("Invalid input! Please enter a number between 100 and 999 with one decimal place.\n");
}
return 0;
}
```
阅读全文