巨兔12138 发表于 2020-6-25 15:16:09

函数的重载无法实现

#include<iostream>

using namespace std;

int Choose(int x, int y, int z);
double Choose(double x, double y, double z);

int main()
{
      int x, y, z, a;
      cout << "请输入三个数字:";
      cin >> x >> y >> z;
      a = Choose(x, y, z);
      cout << "最大值为" << a;

      double x2, y2, z2, a2;
      cout << "请输入三个数字:";
      cin >> x2 >> y2 >> z2;
      a2 = Choose(x2, y2, z2);
      cout << "最大值为" << a2;
}

int Choose(int x, int y, int z)
{
      int temp;
      temp = (x > y) ? x : y;
      temp = (temp > z) ? temp : z;
      return temp;
}
double Choose(double x, double y, double z)
{
      double temp;
      temp = (x > y) ? x : y;
      temp = (temp > z) ? temp : z;
      return temp;
}

我写这个重载的本意是
调试时
当显示“请输入三个数字:”
如果我输入的是三个int型数,就执行int Choose函数,输出最大值
如果我输入的是三个double型数,就执行double Choose函数,输出最大值
也就是说,“请输入三个数字”这个字符串只会出现一次
但是现在我调试代码得到的结果如下
哪位大神能告诉我错在哪了啊,应该如何改呢

qiuyouzhi 发表于 2020-6-25 15:18:18

可是你写了两遍cin啊

巨兔12138 发表于 2020-6-25 15:43:38

qiuyouzhi 发表于 2020-6-25 15:18
可是你写了两遍cin啊

那如果只写一个cin,如何实现我描述的功能呢,您能给说一下吗{:5_109:}
页: [1]
查看完整版本: 函数的重载无法实现