c语言输入一个不等于0的数然后分别输出这个数的符号 整数部分 和小数部分
时间: 2024-10-29 08:15:15 浏览: 29
在 C 语言中,为了获取用户输入的一个不等于零的数并分开处理其正负、整数部分和小数部分,你需要使用 `scanf` 函数获取输入,并通过一些算术操作来区分整数和小数。下面是一个示例程序:
```c
#include <stdio.h>
#include <math.h>
int main() {
float num;
printf("请输入一个不等于0的数: ");
scanf("%f", &num);
// 判断数字的符号
if (num > 0) {
printf("该数是正的: %.2f\n", num);
} else if (num < 0) {
printf("该数是负的: %.2f\n", num);
}
// 分离整数部分
int integer = (int)num; // 舍去小数部分
printf("整数部分: %d\n", integer);
// 计算和输出小数部分
float decimal = fmod(num, 1); // 取余数得到小数部分
printf("小数部分: %.2f\n", decimal);
return 0;
}
```
这个程序首先读取用户的输入,然后判断它的符号,再分离出整数部分和小数部分。
相关问题
编写程序,从键盘输入一个不等于0的浮点数,然后分别输出这个浮点数的符号、整数部分和小数部分。 输入格式: 浮点数 输出格式: Sign:-或+ Integral part: Decimal fraction part:保留3位小数(用C语言)
在C语言中,你可以使用`scanf`函数从键盘获取输入的浮点数,然后通过判断符号、取整和取余数操作来分解它。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h> // 使用ctype_h库处理字符
int main() {
float num;
char sign;
printf("请输入一个不等于0的浮点数:");
scanf("%f", &num);
// 检查是否为0
if (num == 0) {
printf("输入错误,浮点数不能为0。\n");
return 1;
}
// 获取符号
if (num > 0) {
sign = '+';
} else {
sign = '-';
}
// 取整数部分
int integral_part = (int) num; // 整数除法会自动截断小数部分
// 取小数部分并保留3位
float decimal_fraction = modf(num, &integral_part); // modf函数返回小数部分
decimal_fraction *= 1000; // 将小数扩大1000倍以便保留三位小数
decimal_fraction = floor(decimal_fraction + 0.5); // 向下取整,保证四舍五入到最近的整数
decimal_fraction /= 1000; // 再次缩小1000倍恢复原大小
printf("Sign:%c\n", sign);
printf("Integral part:%d\n", integral_part);
printf("Decimal fraction part:%.3f\n", decimal_fraction);
return 0;
}
```
用C语言编写程序,从键盘输入一个不等于0的浮点数,然后分别输出这个浮点数的符号、整数部分和小数部分。例如输入-123.456,输出应该是(按下列格式输出): sign:- integral part:123 decimal fraction part:0.456000
```c
#include <stdio.h>
int main() {
float num;
printf("请输入一个不等于0的浮点数:");
scanf("%f", &num);
if (num > 0) {
printf("sign:+ ");
} else {
printf("sign:- ");
num = -num;
}
int integer = (int)num;
printf("integral part:%d ", integer);
float decimal = num - integer;
printf("decimal fraction part:%f", decimal);
return 0;
}
```
阅读全文