C语言编写程序,题目要求如下,从键盘输入一个带2位小数的实数,将其整数部分和小数部分分离后输出。例如,输入 321.54,输出321.54-321+0.54。
时间: 2024-12-14 07:23:16 浏览: 10
在C语言中,你可以通过使用`scanf`函数读取用户输入的实数,并使用`strtok`函数处理小数点后的部分,然后分别存储整数部分和小数部分。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
double num;
char input[100];
char *dot;
// 从键盘输入带小数的实数
printf("请输入一个带两位小数的实数:");
scanf("%lf", &num);
// 将输入的字符串复制到input数组中
sprintf(input, "%f", num);
// 找到小数点的位置
dot = strtok(input, ".");
if (!dot) { // 如果没有找到小数点,说明只有一个数字
printf("%.2f - %.0f + %.2f\n", num, num, 0); // 输出原数 - 整数部分 + 0.0
} else {
// 分离整数部分和小数部分
char *endptr;
long int integer_part = strtol(dot, &endptr, 10);
double decimal_part = atof(endptr); // 使用atof将小数点后的部分转换为double
printf("%.2f - %ld + %.2f\n", num, integer_part, decimal_part); // 输出原数 - 整数部分 + 小数部分
}
return 0;
}
```
在这个程序中,`strtol`用于提取整数部分,`atof`用于处理小数部分。注意,这个程序假设输入的小数总是有两位。
阅读全文