回 帖 发 新 帖 刷新版面

主题:[讨论]劳烦高手帮忙

#include <stdio.h>
void main()
{
int m, n,i;
scanf("%d,%d", &m, &n);
{
if (m>n)
m%n=i;
else
n%m=i;
}
if(i!=0);
m=n;
n=i;
printf("n is 最大公因数");
if(i==0)
printf("n is 最大公因数\n");
}

回复列表 (共4个回复)

沙发

看起来好像是试图要用辗转相处求最大公约,但是循环都没写……
建议去看看经典代码吧,这个可以搜索到的

板凳

main()
{
 int a,b,num1,num2,temp;
 printf("please input two numbers:\n");
 scanf("%d,%d",&num1,&num2);
 if(num1  { temp=num1;
  num1=num2; 
  num2=temp;
 }
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
 {
  temp=a%b;
  a=b;
  b=temp;
 }
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}

3 楼

思想还是比较经典,欧几里得的方法 :) 
没仔细看代码,但 m%n=i; 这是显然不行的,左边的表达式不能做左值的,编译应该通不过。此外实际编写的时候最好别用 % 运算,它比较慢,一般会有 100 多个时钟周期的执行时间。

4 楼

深圳市华信群英科技有限公司与知名通信软件公司正式签订定向输送人才的合作协议
针对想进入IT软件行业的有志人士提供专业的企业内训
实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段
实训前就签订就业安置协议,岗前实训后入职
不仅学费优惠而且是企业定向培训定向招聘,百分百保证就业
有意向请登录www.szctt.com,或加QQ:1179397962做详细咨询

我来回复

您尚未登录,请登录后再回复。点此登录或注册