C++这样写求不到俩数的最大公约数和最小公倍数,为啥

来源:百度知道 编辑:UC知道 时间:2024/05/14 17:16:02
#include<iostream.h>
#include<iomanip.h>
#include<math.h>
void main()
{
int m,n,i,j,t;
cin>>m>>n;
if(m<n) {t=m;m=n;n=t;}
for(i=n;i>0;i--)
if(m%i==0 && n%i==0)
{break;cout<<"$%^&*()"<<i<<endl;}
for(j=m;;j++)
if(j%m==0 && j%n==0)
{break;cout<<"%^&*("<<j<<endl;}
}

当然求得到,你没有输出而已。
你把 break; 写到 cout 语句之前 ,这样求出来就直接 break 了,不会输出,你可以把 cout 语句放 break 后面 ,后者放到最后面

为了程序的简易型与易读性#include<iostream.h>是C++DE 头文件
#include<math.h>是数学方面的头文件

break有问题
把两个break都放在大括号的最后位置试试
for(i=n;i>0;i--)
if(m%i==0 && n%i==0)
{cout<<"$%^&*()"<<i<<endl;break;}
for(j=m;;j++)
if(j%m==0 && j%n==0)
{cout<<"%^&*("<<j<<endl;break;}