| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 401 人关注过本帖
标题:新人求教,帮我看一下我的错误
只看楼主 加入收藏
此刻不爽
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-12-16
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:6 
新人求教,帮我看一下我的错误
#include<stdio.h>  //写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。


#include<math.h>
#include <string.h>
int main()                             
{

int zdgys(int x,int y);
int zxgbs(int x,int y,int n);
    int i,a,b,d,n;
scanf("%d%d",&a,&b);
n=zdgys(a,b);
d=zdgbs(a,b);
printf("%d %d",n,d);
return 0;
}
 int zdgys(int x,int y)

 {   
     int i;
     int min=x<y? x:y;
     for (i=min;i>1;i--)

     if(i%x==0||i%y==0)   break;

     return (i);
 }

 int zdgbs(int x,int y,int n)
 {return ((x*y)/n);}
搜索更多相关主题的帖子: 最小公倍数 include return 
2012-12-16 07:51
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
int zdgbs(int x,int y,int n)
{return ((x*y)/n);}

这都谁教的啊

DO IT YOURSELF !
2012-12-16 08:06
qq839431011
Rank: 4
来 自:河北
等 级:业余侠客
帖 子:105
专家分:296
注 册:2012-12-5
收藏
得分:1 
两个调用函数没有声明  不声明的话可以把你的主函数放在后面
 int zdgbs(int x,int y,int n)
{return ((x*y)/n);} 这句的形参和实参对应的不对 把int n 应该写在你相应的函数体里 另外n也没有值

穷则变,变则通,通则久 寂寞平淡
2012-12-16 08:28
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:1 
#include<math.h>
#include <string.h>//加个#include<stdio.h>预处理
int main()                             
{

int zdgys(int x,int y);
int zxgbs(int x,int y,int n);//函数申明在函数外,虽然现在有这样写的,编译器有的也不报错,但是为了规范嘛
    int i,a,b,d,n;
scanf("%d%d",&a,&b);
n=zdgys(a,b);
d=zdgbs(a,b);//少传了一个实参
printf("%d %d",n,d);
return 0;
}
int zdgys(int x,int y)

{   
     int i;
     int min=x<y? x:y;
     for (i=min;i>1;i--)

     if(i%x==0||i%y==0)   break;  //貌似这里应该是x%i和%

     return (i);
}

int zdgbs(int x,int y,int n)//这里的参数数目不对
{return ((x*y)/n);}  //谁然这样写可以,但是最好别这样写


我是新手,说错了勿怪啊

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-16 09:43
枫叶飘落
Rank: 2
等 级:论坛游民
帖 子:35
专家分:66
注 册:2012-10-27
收藏
得分:1 
#include<stdio.h>
int main()
{int p,r,n,m,temp;
 printf("输入两个正整数n,m\n");
 scanf("%d %d",&n,&m);
 if(n<m)
 {temp=n;
  n=m;
  m=temp;
 }
  p=n*m;
  while(m!=0)
  {
   r=n%m;
   n=m;
   m=r;
  }
  printf("最大公约数是:%d\n",n);
  printf("最小公倍数是:%d\n",p/n);
  return 0;
}
2012-12-16 10:16
此刻不爽
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-12-16
收藏
得分:0 
回复 5楼 枫叶飘落
你的做法对,但老师让我们练习的是用函数方法做
2012-12-17 16:42
此刻不爽
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-12-16
收藏
得分:0 
回复 4楼 yaobao
#include <stdio.h>  //已经解决了

#include <string.h>
 
#include <math.h>
  
int zdgys( int x, int y)   
{   
  int min,i;  
  if(x<y)
      min=x;
   else
       min=y;
   for(i=min;i>0;i--)
   {
       if(x%i==0&&y%i==0)
            break;
   }
   return  i;
}
int zxgbs( int x,int y,int n)
{   
    int f;
    f=(x*y)/n;
   return f;
}
int main()
{int a,b;
scanf("%d%d",&a,&b);
  
  
printf("%d %d\n",zdgys(a,b),(a*b)/zdgys(a,b));
return 0;
}
2012-12-17 17:17
快速回复:新人求教,帮我看一下我的错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055181 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved