用c语言写输入一个分数转化成小数
时间: 2024-03-12 14:44:34 浏览: 22
好的,请看以下示例代码:
```c
#include <stdio.h>
int main() {
int numerator; // 分子
int denominator; // 分母
double decimal; // 小数
printf("请输入分数的分子和分母(用空格隔开):");
scanf("%d %d", &numerator, &denominator);
decimal = (double)numerator / denominator; // 将分子转换为 double 类型,避免整数除法的问题
printf("%d/%d 转换为小数为:%.2f\n", numerator, denominator, decimal);
return 0;
}
```
运行结果如下:
```
请输入分数的分子和分母(用空格隔开):3 4
3/4 转换为小数为:0.75
```
这里的 %.2f 表示输出小数时保留两位小数。如果需要更多的小数位数,可以将数字 2 改为其他数字,例如 %.6f 表示保留六位小数。
相关问题
用c语言写一个防止非法输入读取小数的函数
以下是一个用c语言编写的防止非法输入读取小数的函数:
```c
#include <stdio.h>
#include <stdlib.h>
double get_valid_double() {
double num;
char input[100];
int valid = 0;
while (!valid) {
if (fgets(input, sizeof(input), stdin) == NULL) {
printf("Error: input was not valid.\n");
exit(EXIT_FAILURE);
}
if (sscanf(input, "%lf", &num) != 1) {
printf("Error: input was not valid.\n");
continue;
}
if (num < 0.0 || num > 100.0) {
printf("Error: input must be between 0 and 100.\n");
continue;
}
valid = 1;
}
return num;
}
int main() {
double num = get_valid_double();
printf("Valid input: %lf\n", num);
return 0;
}
```
这个函数使用fgets()函数从标准输入读取字符串,然后使用sscanf()函数将字符串转换为double类型的数字。如果输入不是有效的数字,则函数会提示用户输入无效,并要求重新输入。如果数字不在0到100的范围内,则函数也会提示用户,并要求重新输入。一旦输入是有效的,函数返回该数字。
用c语言写一个分数相加后输出分数
好的,以下是用C语言写一个分数相加后输出分数的示例代码:
```c
#include <stdio.h>
int main() {
int num1, den1, num2, den2, num3, den3;
printf("请输入第一个分数的分子和分母,中间用空格隔开:");
scanf("%d %d", &num1, &den1);
printf("请输入第二个分数的分子和分母,中间用空格隔开:");
scanf("%d %d", &num2, &den2);
// 求分数相加后的分子和分母
num3 = num1 * den2 + num2 * den1;
den3 = den1 * den2;
// 输出相加后的分数
printf("相加后的分数为:%d/%d", num3, den3);
return 0;
}
```
以上代码会提示用户输入两个分数,然后计算这两个分数相加后的结果,并输出相加后的分数。