c++自定义函数求最大值和最小值

#include<iostream>intimin(intp,intq);{ints;s=p<q?p:q;return(s);}intqwe(intx,inty);{in... #include<iostream>
int imin(int p,int q);
{int s;
s=p<q?p:q;
return(s);}
int qwe(int x,int y);
{int i,z;
for(i=0;i<=x*y;i++)
if((i%x==0)&&(i%y==0))
{z=i;
break;}
return(z);}
int zxc(int x,int y)
{int i,m;
for(i=imin(x,y);i>1;i--)
if((x%i==0)&&(y%i==0))
{m=i;
break;}
return(m);}
main()
{int i,j,min,max,a,b;
scanf("%d%d",&a,&b);
min=qwe(a,b);
max=zxc(a,b);
printf("最小公倍数:%d/n最大公约数为:%d",min,max);
}
总是有一个错误 哪位大侠 帮看看啊
哎 一楼和二楼两个人 的答案 我一起用才对的 我都不知道给谁最佳了啊
展开
 我来答
帝都小女子
2015-09-24 · 知道合伙人金融证券行家
帝都小女子
知道合伙人金融证券行家
采纳数:26032 获赞数:530121
在校期间荣获文明小使者称号,并考取会计从业资格;曾多次参与集团业务处理,并获得其管理层高度赏识。

向TA提问 私信TA
展开全部
  最大值和最小值编写成函数。
  #include <iostream.h>
  double max(double a,double b,double c); double min(double a,double b,double c); int main () {
  int a,b,c;
  cout <<"请输入三个数: " <<endl; cin >>a; cin >>b; cin >>c;
  cout <<"最大数的为: " <<max(a,b,c) <<endl; cout <<"最小的数为: " <<min(a,b,c) <<endl; return 0; }
  double max(double a,double b,double c) {
  if (a>b && a>c) return a; if (b>a && b>c) return b; return c; }
  double min(double a,double b,double c) {
  if (a<b && a<c) return a;
  if (b<a && b<c) return b; return c;
  }
nanlouchen
2010-10-29 · TA获得超过201个赞
知道答主
回答量:40
采纳率:0%
帮助的人:50.7万
展开全部
int imin(int p,int q);和int qwe(int x,int y);后面的分号;去掉,另外...int qwe(int x,int y)函数中i循环应该从1开始,最后,最好加上命名空间吧using namespace std;这句吧...呵呵,这样就对啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
folowing_love
2010-10-30 · TA获得超过191个赞
知道答主
回答量:268
采纳率:0%
帮助的人:229万
展开全部
#include<iostream>
int imin(int p,int q) //你原来这里多了分号
{ int s;
s=p<q?p:q;
return(s);
}
//int qwe(int x,int y) //原来这里多了分号
//{ int i,z;
// for(i=0;i<=x*y;i++)
// if((i%x==0)&&(i%y==0)) //这里判断是错误的,if语句里面的内容根本不会执行,除非x,y 都是0。因为第一次 i=0,if条件就不满足,所以直接执行return 语句
// { z=i; //所以你的根本不能求到最小公倍数!
// break;
// }
// return(z);
//}
//将你的这个函数做修改。如下:
int qwe(int x,int y)
{
int i;
for(i=1;i<=x*y;i++)
{
if((i%x==0)&&(i%y==0))
{
return i;
}
}
}
//这个函数函数同样的错误
//int zxc(int x,int y)
//{ int i,m;
// for(i=imin(x,y);i>1;i--)
// if((x%i==0)&&(y%i==0))
// { m=i;
// break;
// }
// return(m);
//}
//做如下修改!
int zxc(int x,int y)
{
int i;
for(i=imin(x,y);i>1;i--)
if((x%i==0)&&(y%i==0))
{
return i;
}
}
void main()
{ int min,max,a,b;
scanf("%d%d",&a,&b);
min=qwe(a,b);
max=zxc(a,b);
printf("最小公倍数:%d\n最大公约数为:%d",min,max);
getchar();getchar();
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e0a5add
2010-10-29 · 超过93用户采纳过TA的回答
知道小有建树答主
回答量:599
采纳率:0%
帮助的人:317万
展开全部
for(i=0;i<=x*y;i++)
i应改为x或y,1也可以,如果a,b互质,要加一个if(i==1)m=1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式