c++ - 我正在尝试显示我输入的三个值中最大和最小的数量

标签 c++ algorithm function

这是我正在做的一项任务。我很确定这是我遗漏的一些小问题,但看到我在学习其他类(class)后正在深夜努力工作,我相信另一双眼睛可以帮助我。我应该有这样的东西:

please enter first value---> 5.2
please enter second value---> 1.0
please enter third value-->7.1

smallest value: 1.0
largest value: 7.1

但是会得到一些奇怪的数字,例如最小值 002C128F 和最大值 002C128A。 我将不胜感激任何反馈。我不是要求完成作业。看到我被困住了,我只需要一些指导。也许我的 if 语句是错误的?感谢您的时间。

#include <iostream>

using namespace std;

double min2 (double &a, double &b,double &c)
{  
    double min=0;

    if(a<b)
        min= a;
    else 
        min=b;

    if (c<b)
        min=c;

    return min;
}    

double max2(double &a, double &b, double &c)
{   
    double max=0;

    if(a>b)
        max=a;          
    else 
        max=b;

    if (c>b)
        max=c;

    return max;        
}

int main()
{ 
    double a,b,c=0;

    min2(a,b,c);
    max2(a, b, c);

    cout << "Author: Jose Soto.\n";

    cout<<"enter first value: ";
    cin>>a;
    cout<<"enter second value: ";
    cin>>b;
    cout<<"enter third value:";
    cin>>c;

    cout<<"The smallest value is: "<<min2<<endl;
    cout<<"The largest value is: "<<max2<<endl;

}

最佳答案

min2max2 函数的返回值永远不会被使用。您正在打印函数的地址。

也许您正在寻找:

// ...
cout << "The smallest value is: " << min2(a, b, c) << endl;
cout << "The largest value is: " << max2(a, b, c) << endl;

您必须在获得用户输入之后调用函数,而不是在此之前。

关于c++ - 我正在尝试显示我输入的三个值中最大和最小的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21403749/

相关文章:

C++迭代器有效性问题

algorithm - 递归算法的复杂度

algorithm - 检测链表中循环中的第一个节点

c++ - 如何使用 boost asio 接收发送到 255.255.255.255 的 UDP 广播?

c++ - 在 Lua 5.2 中返回 C++ 对象的实例?

c++ - 函数指针模板参数个数

algorithm - 在给定数字n的情况下,如何打印大小为m的所有子序列?

c - 在函数调用期间结构更改的 union 内的结构

java - Java 8 中的谓词和函数接口(interface)有什么区别?

r - 查找具有特定参数的函数