使用C语言输入一个不小于 100 100 且小于 1000 1000,同时包括小数点后一位的一个浮点数,例如 123.4 123.4 ,要求把这个数字翻转过来,变成 4.321 4.321 并输出。
时间: 2024-09-28 13:10:10 浏览: 67
实型常量实数或浮点数-c语言学习ppt
在C语言中,你可以使用`scanf`函数从用户处获取输入,然后使用字符串处理函数来反转浮点数的小数部分。由于浮点数无法精确表示所有十进制数值,我们通常会将其转换为字符串再处理。以下是实现这个功能的一段示例代码:
```c
#include <stdio.h>
#include <string.h>
// 函数用于反转字符串中的字符
void reverse(char* str, int start, int end) {
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
int main() {
float num;
printf("请输入一个小于1000的浮点数,保留一位小数:");
if (scanf("%f", &num) == 1 && num >= 100.0 && num < 1000.0) {
// 将浮点数转换为字符串
char num_str[11]; // 考虑到小数点和整数位
sprintf(num_str, "%.*f", 2, num); // 最多保留两位小数
// 分离整数部分和小数部分
char* decimal_point = strchr(num_str, '.');
if (decimal_point) {
*decimal_point = '\0'; // 截断小数部分
reverse(num_str, 0, strlen(num_str) - 1); // 反转整数部分
strcat(num_str, "."); // 添加小数点
strcat(num_str, decimal_point + 1); // 添加小数部分
} else {
reverse(num_str, 0, strlen(num_str) - 1);
}
printf("反转后的数字为:%s\n", num_str);
} else {
printf("输入错误,应为小于1000的浮点数。\n");
}
return 0;
}
```
这段代码首先提示用户输入,然后检查输入是否符合条件。如果输入有效,它会将数字转换为字符串,反转整数部分,然后再添加原始的小数部分。最后输出结果。
阅读全文