急!求C++重载函数调用错误 为什么错误。。 20

errorC2668:'quyu':ambiguouscalltooverloadedfunction执行cl.exe时出错我的代码:#include<iostream>... error C2668: 'quyu' : ambiguous call to overloaded function 执行 cl.exe 时出错

我的代码:#include <iostream>
#include <math.h>
using namespace std;
int quyu(int a,int b){
int c;
c=a%b;
return c;
}
float quyu(float a,float b){
int z,m,n;
float c;
m=a;
n=b;
if(a-m>=0.5)m++;
if(b-n>=0.5)n++;
z=m%n;
c=z;
return c;
}
int main(){
cout<<"5除以3的余数为"<<quyu(5,3)<<endl;
cout<<"7.2与4.3各自四舍五入取整后相除的余数为"<<quyu(7.2,4.3)<<endl;
return 0;
}
展开
 我来答
Jonclyn
2011-12-04
知道答主
回答量:2
采纳率:0%
帮助的人:2691
展开全部
正常小数是double类型的 你要是想传float类型的 就应该改成7.2f,4.3f
或者把重载函数的参数改成double类型 一下是一种改法 求最佳
#include <iostream>
#include <math.h>
using namespace std;
int quyu(int a,int b)
{
int c;
c=a%b;
return c;
}
float quyu(float a,float b)//可以改成double quyu(double a,double b)
{
int z,m,n;
float c;
m=a;
n=b;
if(a-m>=0.5)m++;
if(b-n>=0.5)n++;
z=m%n;
c=z;
return c;
}
int main()
{
cout<<"5除以3的余数为"<<quyu(5,3)<<endl;
cout<<"7.2与4.3各自四舍五入取整后相除的余数为"<<quyu(7.2f,4.3f)<<endl;
system("pause");
return 0;
}
追问
system("pause");
这是什么意思?
164zsq
2011-12-08 · TA获得超过467个赞
知道小有建树答主
回答量:486
采纳率:0%
帮助的人:443万
展开全部
system("pause");
一般是在vs2010编译器上用到的,因为在vs2010上不加这句话,程序会一闪而过,加这句话是让控制台画面暂停一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
毛宗艮
2011-12-04
知道答主
回答量:25
采纳率:0%
帮助的人:6.1万
展开全部
只要将float改为double就行了,我一般编程就用double型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式