Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 编写一个函数以显示三个数字中最大的一个。有人知道我的程序哪里出了问题吗?_C++_Numbers_Max_Function Call_Function Definition - Fatal编程技术网

C++ 编写一个函数以显示三个数字中最大的一个。有人知道我的程序哪里出了问题吗?

C++ 编写一个函数以显示三个数字中最大的一个。有人知道我的程序哪里出了问题吗?,c++,numbers,max,function-call,function-definition,C++,Numbers,Max,Function Call,Function Definition,(三个数字中最大的一个) 编写一个具有以下标题的函数,以显示三个数字中最大的一个: void displayLargest(double num1, double num2, double num3) 编写一个测试程序,提示用户输入三个数字,并调用函数显示其中最大的数字 以下是我的节目: #include<iostream> #include<iomanip> using namespace std; void displayLargest (double num1,

(三个数字中最大的一个)
编写一个具有以下标题的函数,以显示三个数字中最大的一个:

void displayLargest(double num1, double num2, double num3)
编写一个测试程序,提示用户输入三个数字,并调用函数显示其中最大的数字

以下是我的节目:

#include<iostream>
#include<iomanip>
using namespace std;

void displayLargest (double num1, double num2, double num3)
{  
    if (num1 > num2 && num1 > num3){
        cout << num1;
    }
    else if (num2 > num1 && num2 > num3){
        cout << num2;
    }
    if (num3 > num1 && num3 > num2){
        cout << num3;
    }
}

int main()
{
    double num1, num2, num3;
    cout << "Please enter 3 numbers:";
    cin >> num1, num2, num3;

    displayLargest (double num1, double num2, double num3);
    system("pause");
    return 0;
}
更改此行:

displayLargest(double num1, double num2, double num3);
致:


首先,要在一行中读取三个数字,只需将
cin
管道扩展到所有三个变量

您描述的问题是编译错误,因为无法重新声明
num1
num2
num3
变量。请参阅以下更正这些问题的代码

#include<iostream>

#include<iomanip>

using namespace std;

void displayLargest(double num1, double num2, double num3)

{
  if (num1 > num2 && num1 > num3) {
    cout << num1;
  } else if (num2 > num1 && num2 > num3) {
    cout << num2;
  }
  if (num3 > num1 && num3 > num2) {
    cout << num3;
  }

}

int main() {
  double num1, num2, num3;
  cout << "Please enter 3 numbers:";
  cin >> num1 >> num2 >> num3;

  displayLargest(num1, num2, num3);
  return 0;
}
这个

是语法上无效的结构

函数调用如下所示

displayLargest(num1, num2, num3);
如果您使用的是标准C函数
系统
,则需要包含标题

此外,函数本身也不正确。它没有考虑到用户可以输入三个或两个相等的数字

函数可以用不同的方式定义

下面是函数定义的两个示例

或者

void displayLargest( double num1, double num2, double num3 )
{
    if ( !( num1 < num2 ) && !( num1 < num3 ) )
    {
        std::cout << num1 << '\n';
    }
    else if ( !( num2 < num3 ) )
    {
        std::cout << num2 << '\n';
    }
    else
    {
        std::cout << num3 << '\n';
    }
}

请回顾一下C++中调用函数的章节。提示:当你调用EG<代码>系统< /> >时,你也不写<代码>系统(char []暂停);代码>当两个数字相等时会发生什么?
显示最大值(双num1、双num2、双num3)
我想你应该问自己的问题是,为什么我需要再次告诉编译器
num1
是双精度的,而我之前已经告诉过它三行了?当然,它应该是
displayMaximum(num1、num2、num3)。和
cin>>num1、num2、num3应该是
cin>>num1>>num2>>num3错误是告诉您哪些单词是错的,以及它们的确切位置。非常感谢您的指导!!
./main
Please enter 3 numbers:1 2 3
3
displayLargest (double num1, double num2, double num3);
displayLargest(num1, num2, num3);
void displayLargest( double num1, double num2, double num3 )
{
    if ( !( num1 < num2 ) && !( num1 < num3 ) )
    {
        std::cout << num1 << '\n';
    }
    else if ( !( num2 < num3 ) )
    {
        std::cout << num2 << '\n';
    }
    else
    {
        std::cout << num3 << '\n';
    }
}
void displayLargest( double num1, double num2, double num3 )
{
    double largest = num1;

    if ( largest < num2 )
    {
        largest = num2;
    }

    if ( largest < num3 )
    {
        largest = num3;
    }

    std::cout << largest << '\n';
}
#include <iostream>
#include <algorithm>

void displayLargest( double num1, double num2, double num3 )
{
    std::cout << std::max( { num1, num2, num3 } ) << '\n';
}

int main() 
{
    displayLargest( 1.2, 1.3, 1.1 );

    return 0;
}