C语言描述两个整数a,b 分别作为分子和分母,即分数a/b ,求它的真实值,保留到小数点后9位。如果b=0 ,输出error! 输入描述 一行,a 和b 输出描述 一行,表示输出的结果
时间: 2024-10-24 16:07:39 浏览: 86
在C语言中,可以使用`double`类型的变量存储分数,并利用`printf`格式控制符`%.9f`来保留9位小数。同时,需要检查分母`b`是否为0,以避免除以零的情况。以下是一个简单的程序实现:
```c
#include <stdio.h>
void compute_fraction(int a, int b) {
if (b == 0) {
printf("error!\n");
} else {
double fraction = (double) a / b;
printf("%.9f\n", fraction);
}
}
int main() {
int a, b;
scanf("%d%d", &a, &b);
compute_fraction(a, b);
return 0;
}
```
这个程序首先定义了`compute_fraction`函数,其中先判断分母`b`是否为0,如果是,则输出"error!";否则,将整型数值`a`转换为双精度浮点数,然后除以`b`得到分数,最后使用`%.9f`格式输出保留9位小数。
相关问题
C语言两个整数 a 和 b 分别作为分子和分母,即分数 a /b ,求它的浮点数值(双精度浮点数,保留小数点后 9 位)。
在C语言中,你可以通过将整数a除以b并转换为double类型来得到分数a/b的浮点表示。为了保留小数点后九位,你需要考虑浮点数的精度可能会导致实际结果四舍五入。下面是一个简单的示例代码片段:
```c
#include <stdio.h>
#include <math.h>
// 使用long double可以保证更多位的精度
long double divide(int a, int b) {
// 避免除以零的情况
if (b == 0) {
printf("Error: Division by zero is not allowed.\n");
return 0;
}
long double result = (long double)a / b; // 将整数转换为长双精度浮点数
return round(result * pow(10, 9)) / pow(10, 9); // 四舍五入到小数点后9位,并转换回double类型
}
int main() {
int a = 123, b = 456;
long double fraction = divide(a, b);
printf("%.9f\n", fraction);
return 0;
}
```
在这个例子中,`divide`函数计算分数,如果需要打印结果,会使用`%.9f`这样的格式化字符串控制小数点后的位数。
两个整数a和b分别作为分子和分母,既分数 a/b ,求它的浮点数值(双精度浮点数,保留小数点后9位) 的C语言程序
以下是一个简单的 C 语言程序,它可以通过输入 a 和 b 的值来计算它们的商并输出结果:
```c
#include <stdio.h>
int main() {
int a, b;
double result;
printf("请输入分子和分母的值:");
scanf("%d %d", &a, &b);
result = (double) a / b;
printf("结果为:%.9lf", result);
return 0;
}
```
在上面的程序中,我们首先声明了三个变量:`a`、`b` 和 `result`。`a` 和 `b` 是用来存储输入的分子和分母的整数值的,而 `result` 用来存储计算出来的浮点数值。
然后,我们使用 `printf()` 函数向用户请求输入分子和分母的值,并使用 `scanf()` 函数将这些值存储到相应的变量中。
接下来,我们将 `a` 转换为浮点数,然后将其除以 `b` 来计算结果,并将结果存储到 `result` 变量中。
最后,我们使用 `printf()` 函数输出结果,并使用格式化字符串 `%.9lf` 来保留小数点后 9 位。
阅读全文