求助两道C++编程题目

2025-03-25 22:18:04
推荐回答(2个)
回答1:

    亲密数上传附件了,分数化简的用了辗转相除求最大公约数来化简。

#include 
using namespace std;
int gcd(int x,int y)   
 //欧几里得辗转相除法求两数的最大的公约数
{   
    int m;
    if(x    return gcd(y,x);
    if(x%y!=0)
    return gcd(y,x%y);
    else return y;
}
int main() 
{
    int a,b,k;
    cout<<" 请输入分子和分母,空格键间隔 "<    cin>>a>>b;
    if(a*b<0)
    cout<<"-";
    a=int(abs(a));
    b=int(abs(b)); 
    k=gcd(a,b);
    cout<    //system("pause");
}

回答2:

#include
#include //用math中的绝对值abs函数
void main()
{
int i,j,n,m=1;
printf("分母为:");
scanf("%d",&i);
printf("分子为:");
scanf("%d",&j);
for(n=2;nif(i%n==0&&j%n==0)
m=n;
}
i=i/m;
j=j/m;
if(i*j>=0)
printf("该分数化简为:%d/%d\n",abs(j),abs(i));
if(i*j<0)
printf("该分数化简为:%d/%d\n",-abs(j),abs(i));

}ng