C语言代码新手求助

#include<stdio.h>voidmain(){intm=1,n=1,a,b;intgcd(int,int);for(;m<=667;m++)for(;n<=66... #include <stdio.h>void main()
{
int m=1,n=1,a,b;
int gcd(int,int);
for(;m<=667;m++)
for(;n<=667;n++){
a=gcd(m,n);b=m*n/a;
if ((m+n==667)&&(b/a==120))
printf("%d,%d",m,n);
}
}

int gcd(int m,int n){
int max,min,mo;
if(m>=n){
max=m;min=n;}
else
max=n;min=m;
do{mo=max%min;

max=min;min=mo;}
while(mo!=0);
return min;
}

输出数对,两个数的和为667,最小公倍数除以最大公约数的商为120.上面的代码是我写的,运行结果没有输出,求大神解答
展开
 我来答
double_聪
2013-04-16 · TA获得超过108个赞
知道小有建树答主
回答量:218
采纳率:100%
帮助的人:154万
展开全部

改进了,望采纳


#include <stdio.h>
int gcd(int m,int n){
int max,min,mo;
if(m>=n){
max=m;min=n;}
else{ //你少括号了
max=n;min=m;}
do{
mo=max%min;
max=min;
min=mo;}
while(mo!=0);
return max; //改,应该输出max
}
int main()
{
int m,n,a,b;
for(m=1;m<667;m++) //改进了
{
n=667-m;
a=gcd(m,n);
b=m*n/a;
if(b/a==120)
printf("m=%d,n=%d\n",m,n);
}
return 0;
}
追问
能不能指出我的问题在哪里?gcd的返回值我改成了max但是还没有输出~那个括号我也加上了
追答
for(m=1;m<=667;m++)
for(n=1;n<=667;n++){
这样可以
珉繶
2013-04-16
知道答主
回答量:63
采纳率:0%
帮助的人:29.8万
展开全部
函数gcd中的返回值min=mo=0了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式