#include<stdio.h>
int main()
{
int a,b,c,i;
printf("請輸入兩個數\n");
scanf("%d %d",&a,&b);
if(a<b)
{
c=a,
a=b,
b=c;
}
for(i=b;i>0;i--)
{
if(a%i==0&&b%i==0)
printf("最大公約數:%d\n",i);
}
c=a*b;
c=c/i;
printf("最小公倍數%d\n",c);
return 0;
}
uj5u.com熱心網友回復:
修改如下,供參考:#include <stdio.h>
int main(int argc, char* argv[])
{
int a,b,c,i,y;
printf("請輸入兩個數\n");
scanf("%d %d",&a,&b);
if(a<b)
{
c=a; //這里是";"號,不是","號
a=b;
b=c;
}
for(i=1;i<=b;i++)
{
if(a%i==0 && b%i==0) y=i;//增加一個變數y,記錄公約數
}
printf("最大公約數:%d\n",y);
c=a*b;
c=c/y;
printf("最小公倍數:%d\n",c);
return 0;
}
uj5u.com熱心網友回復:
報錯的原因是在求最大公約數后,i的值變為0,之后c=c/i;
就會報錯。
修改方法
for(i=b;i>0;i--)
{
if(a%i==0&&b%i==0)
{//-------添加--------------
printf("最大公約數:%d\n",i);
break;//------在得到最大公約數后,結束for回圈----------
}//-----------添加--------------------
}
VC++6.0 C++環境除錯

VC++6.0是我的最愛,沒有之一
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/228614.html
標籤:C語言
上一篇:為什么?
