c++课后习题函数重载
#include <iostream>using namespace std;
int calc(int x,int y);
int calc(int x,int y,int z);
int calc(int x,int y,int z,int n);
int main()
{
int x,y,z,n;
cout << "请输入一个整数" <<endl;
cin >> x;
calc(x,y);
cout << y <<endl;
return 0;
}
int calc(int x,int y)
{
y=x*x;
return y;
}
int calc(int x,int y,int z)
{
z=x*y;
return z;
}
int calc(int x,int y,int z,int n)
{
n=x*y*z;
return n;
}
\\为什么这个运行了之后是输入6输出的是0,试了好几个数都是输出0;
重载是没问题,只不过形式参数作为返回值不对
可以改成局部变量作返回值,然后直接传入实际参数,返回局部变量
#include <iostream>
using namespace std;
int calc(int x);
int calc(int x, int y);
int calc(int x, int y, int z);
int main()
{
int x, y, z, n;
cout << "请输入一个整数" << endl;
cin >> x;
y=calc(x);
cout << y << endl;
return 0;
}
int calc(int x)
{
int y;
y = x * x;
return y;
}
int calc(int x, int y)
{
int z;
z = x * y;
return z;
}
int calc(int x, int y, int z)
{
int n;
n = x * y * z;
return n;
} 昨非 发表于 2020-12-26 14:53
重载是没问题,只不过形式参数作为返回值不对
可以改成局部变量作返回值,然后直接传入实际参数,返回局 ...
你这样的话main 函数里面只执行了输入一个参数的情况,其他两种情况好像并没能实现
#include<iostream>
using namespace std;
int cala(int x);
int cala(int x, int y);
int cala(int x, int y, int z);
int main()
{
int a, i = 0;
cout << "请输入x或者x y或者x y z" << endl;
while (1)
{
cin >> a;
i++;
if (cin.get() == '\n')
{
break;
}
}
switch (i)
{
case 1:
cout << cala(a) << endl;
break;
case 2:
cout << cala(a, a) << endl;
break;
case 3:
cout << cala(a, a, a) << endl;
break;
default:
break;
}
}
int cala(int x)
{
return (x * x);
}
int cala(int x, int y)
{
return (x * y);
}
int cala(int x, int y, int z)
{
return (x + y + z);
}
可以这么写
页:
[1]