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;
}