带小数点的十进制转换八进制C语言代码
时间: 2023-07-09 21:45:55 浏览: 87
以下是将带小数点的十进制数转换为八进制数的C语言代码:
```c
#include <stdio.h>
int main() {
double decimal;
int integer, quotient, remainder;
int octal_int = 0, octal_frac = 0;
int i = 1, j = 1;
printf("Enter a decimal number: ");
scanf("%lf", &decimal);
integer = (int) decimal;
decimal = decimal - integer;
// Convert integer part to octal
quotient = integer;
while (quotient != 0) {
remainder = quotient % 8;
octal_int = octal_int + remainder * i;
i = i * 10;
quotient = quotient / 8;
}
// Convert fractional part to octal
while (decimal > 0) {
decimal = decimal * 8;
integer = (int) decimal;
octal_frac = octal_frac + integer * j;
j = j * 10;
decimal = decimal - integer;
}
// Print octal number
printf("Octal equivalent: %d.%d", octal_int, octal_frac);
return 0;
}
```
该程序首先从用户输入的十进制数中提取整数部分和小数部分,并将整数部分转换为八进制数。然后,它将小数部分乘以8并将结果转换为整数,重复此过程直到小数部分为零。最后,程序将整数部分和小数部分组合成一个八进制数并输出结果。