C语言,键盘输入一个实数,输出他的小数部分
时间: 2024-10-19 20:09:59 浏览: 44
在C语言中,如果你想获取用户输入的实数并只输出其小数部分,你需要先读取整个输入作为字符串,然后解析出小数点后面的数字。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
double get_decimal_part(char input[]) {
int decimal_pos = -1;
for (int i = 0; input[i] != '\0'; i++) {
if (input[i] == '.') {
decimal_pos = i;
break;
}
}
// 如果没找到小数点,则返回整数部分
if (decimal_pos == -1) {
return atof(input);
}
// 将小数部分复制到一个新的字符串中,并转换为浮点数
char* endptr;
double result = strtod(&input[decimal_pos + 1], &endptr);
// 检查是否成功转换
if (*endptr == '\0') {
return result;
} else {
printf("Invalid input: Unable to parse the decimal part.\n");
return 0.0;
}
}
int main() {
char input[64];
printf("Enter a real number: ");
fgets(input, sizeof(input), stdin); // 读取用户输入,包括空格
input[strcspn(input, "\n")] = '\0'; // 去除行尾的换行符
double decimal_result = get_decimal_part(input);
printf("The decimal part of the number is: %f\n", decimal_result);
return 0;
}
```
在这个例子中,`get_decimal_part`函数首先查找小数点的位置,然后截取小数部分并尝试将其转换为浮点数。如果输入不是有效的实数,它会给出错误提示。
阅读全文