使用c语言从键盘输入2个整数分别作为分子和分母,求分数的值
时间: 2024-04-14 08:27:37 浏览: 238
好的,以下是使用C语言从键盘输入两个整数分别作为分子和分母,并计算分数值的示例代码:
```c
#include <stdio.h>
int main() {
int numerator, denominator;
float fraction;
printf("请输入分子:");
scanf("%d", &numerator);
printf("请输入分母:");
scanf("%d", &denominator);
if (denominator != 0) {
fraction = (float) numerator / denominator;
printf("分数的值为:%f\n", fraction);
} else {
printf("错误:分母不能为0\n");
}
return 0;
}
```
这段代码首先通过`scanf`函数从键盘输入分子和分母的值,然后进行判断,若分母不为0,则将分子除以分母,并将结果保存在`fraction`变量中。最后使用`printf`函数输出计算得到的分数值。
请注意,为了得到精确的浮点数结果,我们将分子强制转换为浮点数进行计算。
相关问题
输入一个正整数n,输出2/1 + 3/2 + 5/3 + 8/5 + …的前n项之和,保留2位小数(该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)c语言
以下是求解该问题的C语言代码:
```c
#include <stdio.h>
int main() {
int n;
double sum = 0.0;
double numerator = 2.0, denominator = 1.0;
for (int i = 1; i <= n; i++) {
sum += numerator / denominator;
double temp = numerator;
numerator = numerator + denominator;
denominator = temp;
}
printf("前%d项之和为%.2f\n", n, sum);
return 0;
}
```
解释一下代码的思路:
1. 从键盘输入一个正整数n;
2. 定义一个sum变量,用于存储序列前n项的和,初始化为0;
3. 定义分子numerator和分母denominator,分别初始化为2和1;
4. 使用for循环计算前n项之和,每次循环计算当前项的分数值,并加到sum变量上;
5. 在循环中更新分子和分母的值,分子更新为前一项的分子和分母的和,分母更新为前一项的分子;
6. 最后输出前n项之和,保留2位小数。
注意:由于本题中的分数均为真分数,因此分子与分母都应该使用double类型来存储。
本关任务:孔融没有兄弟姐妹,到了周末,就找堂兄孔明、堂姐孔茹、堂弟孔伟等7个堂兄妹来到家里玩。孔融妈妈买了8个梨给孩子们吃,结果小黄狗桐桐淘气叼走了一个,大花猫鑫鑫偷偷藏了一个。孔融抢过剩下的6个梨,妈妈止住他,说他要和大家平分吃。孔融不高兴,说8个人怎么分6个梨?妈妈说可以用分数解决这个问题。孔融学过分数,说把每个梨切8个相等的块,每个人拿6块就行了。妈妈说不用切那么多块,每个梨切4个相等的块,每个人拿3块正好。孔融糊涂了。孔明说,我来教你。于是孔明给孔融讲起了分数的化简。 分数化简要化简到最简形式,比如12/20可以化简成6/10和3/5,但3/5是最简形式;100/8可以化简成 50 /4和 25 /2 , 而25/2 为最简形式。为了降低难度,不要求将假分数(如7/2)化简成带分数(3(1/2))形式。请编程帮助孔融将任意一个分数化简成最简形式。先从键盘输入两个整数m和n(1<=m,n<=10000) ,其中m表示分子,n表示分母。然后输出分数化简后的最简形式。给出c语言代码
#include<stdio.h>
int main()
{
int m, n, x, y, a=0;
scanf("%d%d", &m, &n);
x=m, y=n;//保存初始值
while(n!=0)//辗转相除
{
a=m%n;
m=n;
n=a;
}
printf("%d/%d", x/m, y/m);//输出最简形式
return 0;
}
阅读全文