C语言变成题

来源:百度知道 编辑:UC知道 时间:2024/09/20 06:48:36
求最大公约数和最小公倍数
#include<stdio.h>
main()
{
int a,b,t,p,r;
scanf(“%d,%d”,a,b);
if(a<b)
{t=a;
a=b;
b=t;
}
p=a*b;
r=a%b; 经过多次试验,我发现这句要放到下面的括号里才对,为什么呢?
while(r)
{
a=b;
b=r;
}
printf(“%d %d”,b,p/b);
}
请问上面的程序错在哪里。为什么输入数之后界面跳转不回来呢?

r在循环外面,值未变,死循环
vc2008

#include "stdafx.h"

#include<stdio.h>
void main()
{
int a,b,t,p,r;
scanf("%d,%d",&a,&b);//要有&
if(a<b)
{t=a;
a=b;
b=t;
}
p=a*b;r=a%b;
while(r)
{
a=b;
b=r;r=a%b;
}
printf("%d %d",b,p/b);
while(1);//你的编译器可以删掉
}

scanf(“%d,%d”,a,b);
这个要改为scanf("%d,%d",&a,%b);