标题:帮我看一下问题出在哪里
只看楼主
风流笑
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-3-15
结帖率:66.67%
已结贴  问题点数:13 回复次数:2 
帮我看一下问题出在哪里
求最小公倍数
#include<stdio.h>
int main()
{
    int a,b,i;
    printf("%d,%d\n",a,b);
    scanf("%d,%d",&a,&b);
    if (a>b)
    {
    printf("%d,%d\n",a,b);
    scanf("%d,%d",&a,&b);
        for (i=2;i<=b;i++)
    if(a%b!=i)
    {   printf("a*b=%d\n",a*b);
    }
    else
    {printf("(a/i)*(b/i)=%d\n",(a/i)*(b/i));}
    }
    else
    {printf("%d,%d\n",a,b);
    scanf("%d,%d",&a,&b);
        for(i=2;i<=a;i++)
            if(a%b!=i)
            {   printf("a*b=%d\n",a*b);
    }
    else
    {printf("(a/i)*(b/i)=%d\n",(a/i)*(b/i));}
    }

}
搜索更多相关主题的帖子: 最小公倍数 include 最小公倍数 include 
2013-03-22 21:00
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:13 
可以说你这个程序完全没道理!处处是错误...    比如: printf("%d,%d\n",a,b);这是什么?    你a和b都没有赋值你输出什么啊???输出的只能是地址,而且你算最小公倍数的方法也是错误的。正确方法应该是用辗转相除法求出两个数的最大公约数,然后再拿两个数的乘积除以最大公约数得到的才是最小公倍数。

三十年河东,三十年河西,莫欺少年穷!
2013-03-22 21:13
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:0 
正确的程序是这样写的:
程序代码:
#include<stdio.h>
main()
{
   int a,b,m,n,k;
   printf("please input two integers:");
   scanf("%d %d",&n,&m);
   if(n<m)
   {
       k=n;
       n=m;
       m=k;
   }
   a=m*n;/*求两个数的乘积,为后来求最小公倍数做准备*/
   while(m!=0)/*此循环是用辗转相除法求两个数的最大公约数*/
   {
       b=n%m;
       n=m;
       m=b;
   }
   printf("最大公约数是:%d\n",n);
   printf("最小公倍数是:%d\n",a/n);/*a/n就是最小公倍数*/
   return 0;/*明白了吗?看你基础好像不大好,多练练吧,先把书看熟*/
} 


三十年河东,三十年河西,莫欺少年穷!
2013-03-22 21:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-401611-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.631439 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved