首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

大一新兴求解答~0 0

2013-11-19 
大一新生求解答~0 0#includestdio.hint main(){ int m,n,i,t,s,n1 scanf(%d%d,&m,&n) if(mn) tm,m

大一新生求解答~0 0

#include<stdio.h>
int main()
{
 int m,n,i,t,s,n1;
 scanf("%d%d",&m,&n);
 if(m<n)
 t=m,m=n,n=t;
 n1=n;
 if(m%n==0)
 printf("%d\n",n);
 else
 {
 while(t!=0)
 {
 t=m%n;
 m=n;
 n=t;
 }
 printf("%d",n);
 }
 printf("%d",(m*n1)/n);
}


这个求最大公约数的代码到底错在哪里了- - 我觉得没错啊
[解决办法]
设置断点,逐步调试,分析结果。这是新手必须要学会的技能,这也是寻找BUG必须会的。
[解决办法]
if(m<n)
     {t=m,m=n,n=t;}//交换记得加{},这是3句话不是1句话

[解决办法]
引用:
改成这样吧:
#include<stdio.h>
int main()
{
     int m,n,i,t,s,n1;
     scanf("%d%d",&m,&n);
     if(m<n)
     {
         t=m;
         m=n;
         n=t;
     }
     t=m%n;
     while(t!=0)
     {
         m=n;
         n=t;
         t=m%n;//把这句放到最后,n记录上一个余数值
     }
     printf("%d",n);
}


是这样的
[解决办法]
崩溃啊!再看了看,t等于0了,n=t不也是0了吗

热点排行