| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 326 人关注过本帖
标题:C程序输入12,15后无结果
取消只看楼主 加入收藏
TroubleMaker
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-12-16
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:1 
C程序输入12,15后无结果
各位高手,这是一个用来求两个int型数值的最大公约数和最小公倍数的程序源码:
1 #include<stdio.h>
2 void main()
3 {
4 int gy(int x,int y);
5 int gb(int x,int y);
6 int a,b;
7 printf("The program can give you the MAX GY and MIN GB of 2 int.\n\n");
8 printf("Then please input a,b(int).\n");
9 scanf("%d,%d",&a,&b);
10gy(a,b);
11gb(a,b);
12getch();
13 }
14 int gb(int x,int y)
15 {
16 int z;
17 if(x==y)printf("The min gb is %d.\n",x);
18 else
19   {
20    z=x>y? x:y;
21    while(!(z%x==0&&z%y==0))
22    {
23    z=z+1;
24    }
25   printf("The min gb is %d.\n",z);
26   }
27  }
28int gy(int x,int y)
29{
30int z,m;
31if(x==y)printf("The max gy is %d.\n",x);
32else
33  {
34   if(x%2==0&&y%2==0)
35   {
36    x=x/2;y=y/2;
37   }
38   z=x>y? x:y;
39   m=x>y? y:x;
40   while(!(z==m))
41   {
42    z=z-m;
43    }
44   printf("The max gy is %d.\n",z);
45   }
46 }
当我输入12,15时 按下回车 却只有一个换行 并未输出结果 请问各位怎么回事?怎么解决?谢谢!
搜索更多相关主题的帖子: 最小公倍数 include please 
2013-01-20 20:27
TroubleMaker
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-12-16
收藏
得分:0 
我知道怎么回事了,是算法的问题!不过多谢各位指导!
正确的源码(gy部分):
int gy(int x,int y)
 {
 int z,m;

    if(x%2==0&&y%2==0)
    {
     x=x/2;y=y/2;
    }
    z=x>y? x:y;
    m=x>y? y:x;
    while(!(m==z))
    {
    z=z-m;
    }
    printf("The max gy is %d.\n",z);

  }
对于3楼提出的问题:main()调用的gy(),gb()函数我在4,5行有声明,函数声明出现在调用位置之前即可,是可以做全面的正确性检查的(班门弄斧了,本人自学不久,以后请多多指导!)。
至于为什么编这么麻烦,是因为要求用函数的方法分别求公倍数和公约数。
十分感谢大家的指导!!
本人qq:874695162
2013-01-21 18:25
快速回复:C程序输入12,15后无结果
数据加载中...
 
   



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

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