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.上面的代码是我写的,运行结果没有输出,求大神解答 展开
{
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.上面的代码是我写的,运行结果没有输出,求大神解答 展开
2个回答
展开全部
改进了,望采纳
#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++){
这样可以
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询