C语言提交后显示浮点错误是怎么回事?改了很多次都不行。。我是新手。
2个回答
展开全部
你的y=a/b要放在输入的后面,因为开始a,b是没有值的,还有除法不能直接用/,这是整除会去掉小数部分,应该这样写(float)a/b,这样除出来才有小数。另外你没有按照题目要求,题目要求你模拟手动比较,也就是你要先通分在比较。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int Lcm(int a,int b){
if(a == 0 || b== 0)
return 0;
else if(0 == a%b)
return a;
else if(0 == b%a)
return b;
else {
for(int i = 2; i <= a*b;i++){
if(0 == i%a && 0 == i%b){
return i;
}
}
}
//未找到,一般不可能
return 0;
}
int main(void){
int a = 0;
int b = 0;
int c = 0;
int d = 0;
printf("input a/b,c/d:");
scanf("%d/%d,%d/%d",&a,&b,&c,&d);
//求分母最小公倍数
int lcm = Lcm(b,d);
//通分并比较
if(lcm == 0)
printf("error\n");
else if(a * lcm / b > c * lcm /d){
printf("%d/%d>%d/%d\n",a,b,c,d);
}
else if(a * lcm / b == c * lcm /d){
printf("%d/%d=%d/%d\n",a,b,c,d);
}
else {
printf("%d/%d<%d/%d\n",a,b,c,d);
}
getchar();
getchar();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询