#include<iostream>
using namespace std;
int main()
{
double a,b,c=1,d;//a,b接受数值,c最小公倍数,d最大公约数
cout<<"请输入两个数值:";
cin>>a;
cin>>b;
asd:
if(a*c!=b*c)
{
c++;

展开全部
收起
5回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Arianna

    19人对此回答表示赞同

    if(a*c!=b*c)
    {
    c++;
    goto asd;
    }
    这是死循环,如果 输入的 a 和 b 不相等,那么他们乘以一个相同的数也不会相等的。应该改为if ((c%a==0)&&(c%b==0))才对。
    另外:不建议用 goto 语句,这是在C++中被弃用的,是一个不好的习惯,因为大程序里 goto 语句太多,会很混乱很难修改。建议你改为 循环实现。
    还有一点,你的算法效率也不高啊。
    展开
    19
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Shyanne

    12人对此回答表示赞同

    1、2个 if 语句判断条件是错的,
    if(a*c!=b*c)只要输入a!=b 你的判断永远true 后面那个也是错的
    2、goto语句一般都不用了,基本被淘汰了,因为绝大多数的goto 都可以用while或for解决
    3、double型没有公约数公倍数之说 只有int 或者 long才有
    4、你在 if 里面用 c++ d-- 会即使你判断条件正确也会在最后在执行一次运算 比如 3 和6你会算出 6然后+1输出 7; 这也是got
    展开
    12
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Penelope

    9人对此回答表示赞同

    你的算法本来就是错的,一开始就死循环了,按下面这个,辗转相除法。

    #include<iostream>
    using namespace std;
    int main()
    {
    int a,b,c=1,d;//a,b接受数值,c最小公倍数,d最大公约数
    cout<<"请输入两个数值:";
    cin>>a;
    cin>>b;
    d = a %
    展开
    9
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Maya

    6人对此回答表示赞同

    你这算法是怎么生出来的,莫名其妙。
    而且还用double这种数据类型,是int吧

    用辗转相除法:
    void main()
    {
    int a,b;
    int temp;
    int sum=a*b;
    scanf("%d%d",&a,&b);
    if(a<b)
    {
    temp=a;
    a=b;
    b=temp;
    }
    while((temp=
    展开
    6
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 徐子衿

    1人对此回答表示赞同

    求最大公约数的方法:两个数求最大公约数,可以用辗转相除法。始终用较大数除以较小数,然后用余数代替较大数。整除时的除数就是最大公约数。
    #include "stdio.h"
    void main()
    {
    int a,b,num1,num2,temp;
    printf("Please input two numbers:\n");
    scanf("%d,%d",&num1,&num2
    展开
    1
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部