上海交通卡线下充值机:C语言问题

来源:百度文库 编辑:高考问答 时间:2024/04/29 05:21:05
#include<stdio.h>
void main()
{
int M(int x,int y);
int N(int x,int y);
int a,b;
printf("**********Please input 2 numbers**********\n");
scanf("%d%d",&a,&b);
a = M(a,b);
b = N(a,b);
printf("Do you want to know what's the common divisor is?\n**********It is %d**********\nDo you want to know what's the common multiple is?\n**********It is %d**********\n",a,b);
}

int M(int x,int y)
{
int r,z;
if(x < y)
{
r = y;
y = x;
x = r;
}
r = x % y;
while(r != 0)
{
x = y;
y = r;
r = x % y;
}
if(r == 0)
{
z = y;
}
return z;
}

int N(int x,int y)
{
int i,r,t,x1,y1;
x1 = x;
y1 = y;
if(x < y)
{
r = y;
y = x;
x = r;
}
r = x % y;
while(r != 0)
{
x = y;
y = r;
r = x % y;
}
if(r == 0)
{
t = y;
}
i = x1*y1/t;
return i;
}

最小公倍数错了!可是不知道怎么改!请会的人帮忙改下!不要重新把自己的写给我!我理解能力差!

我支持楼上的观点,不过我还是提醒你一下撒~

a = M(a,b);
b = N(a,b);

你看看b函数中a值的问题~

错误挺简单的
我给你看了
自己好好想一下是那一点没有对
相信自己有能力想出