c++编程,运行提示错误
#include<stdio.h>inthcf(intu,intv){intt,r;if(v>u){t=u;u=v;v=t;}while(u%v!='0'){r=u%v;...
#include <stdio.h>
int hcf(int u,int v)
{int t,r;
if(v>u)
{t=u;
u=v;
v=t;}
while(u%v!='0')
{r=u%v;
v=r;
u=v;
}
return(v);
}
int lcd(int u,int v,int h)
{
return(u*v/h);
}
main()
{
int u,v,h,l;
scanf("%d,%d",&u,&v);
h=hcf(u,v);
l=lcd(u,v,h);
printf("H.C.F=%d\n",h);
printf("L.C.D=%d\n",l);
} 展开
int hcf(int u,int v)
{int t,r;
if(v>u)
{t=u;
u=v;
v=t;}
while(u%v!='0')
{r=u%v;
v=r;
u=v;
}
return(v);
}
int lcd(int u,int v,int h)
{
return(u*v/h);
}
main()
{
int u,v,h,l;
scanf("%d,%d",&u,&v);
h=hcf(u,v);
l=lcd(u,v,h);
printf("H.C.F=%d\n",h);
printf("L.C.D=%d\n",l);
} 展开
5个回答
展开全部
你这是求最大公约数和最小公倍数的程序吧,最大公约数的部分错了很多,最小公倍数是对的。给你看一下最大公约数的正确代码,就那个循环中的部分
while(v != 0 && u%v!=0) // 要防止v等于0,还有求模是判断不等于数值0,不是字符'0'
{r=u%v;
u = v; // 你两句先反了
v = r;
}
while(v != 0 && u%v!=0) // 要防止v等于0,还有求模是判断不等于数值0,不是字符'0'
{r=u%v;
u = v; // 你两句先反了
v = r;
}
展开全部
这种逻辑一眼看出是很难的。lz应该学习调试。调试比学习语言更重要
虽然不知道直接答案,但是底下的语句是最值得怀疑的
while(u%v!='0')
是不是应该是
while(u%v!=0)
注意,'0'等价于数字48,而不是0
虽然不知道直接答案,但是底下的语句是最值得怀疑的
while(u%v!='0')
是不是应该是
while(u%v!=0)
注意,'0'等价于数字48,而不是0
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码贴上来成这样了。百度不能保留格式吗?楼上正解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main 函数少了返回类型 - -
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(u%v!='0')
语句中‘0’ 是字符常量,而u%v是整形量不相等
应改为
while(u%v != 0)
语句中‘0’ 是字符常量,而u%v是整形量不相等
应改为
while(u%v != 0)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
更多回答(3)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询