无论我尝试多少次,程序都不会运行,如果我这样做,我会得到新的错误。有些人帮我这个吗? void函数是正确的。我认为被调用的函数有问题我不确定我刚刚开始使用c ++四天前。
#include<iostream>
using namespace std;
void calcStats(int , double );
int main()
{
int num[3];
for(int i=0; i<3; i++)
{
cout << "enter a number "<<endl;
cin >> num[i] ;
}
cout <<"your Number are "<< num[0]<< " , " <<num[1]<< " , "<< num[2]<< endl;
calcStats(num[2] &maximum ,&minimum, &avg);
cout <<"hightes number is" << maximum<<endl;
cout<< "lowest number is" << minimum<< endl;
cout<< "avg is" << avg<< endl;
return 0;
}
void calcStats(int num[2], int &maximum, int &minimum, double &avg)
{
maximum = num[0];
minimum = num[0];
// find maximum
if (num[1]>maximum)
maximum = num[1];
if (num[2]>maximum)
maximum = num[2];
// find minimum
if (num[1]<maximum)
maximum = num[1];
if (num[2]<maximum)
maximum = num[2];
// find average
avg = static_cast<double>(num[0] + num[1] + num[2])/3.0;
}
答案 0 :(得分:3)
calcStats()
分成多个小函数,例如getMax(), getMin(), getAverage()
。
请勿对该功能使用含糊的名称。需要明确函数的作用而不查看它的定义。例如,除非我查看代码,否则我不清楚calcStats()
做什么。另一方面,我知道getMax()
做了什么,它返回最大值。 问题在于声明:
void calcStats(int, double)
- 2个参数
与定义不符:
void calcStats(int [2], int &maximum, int &minimum, int &avg)
- 4个参数
在声明中,您承诺传递2个参数,一个整数和一个double。但是当涉及到实际的定义时,你会说这个函数采用一个大小为2的整数数组,一个对变量maximum,minimum和avg的引用。
错误#1:定义和声明应符合
声明:void calcStats(int [], int &, int &, double &)
定义:void calcStats(int [3], int &min, int &max, double &average){}
错误#2:确保传递正确的参数
如果函数期望3个整数的数组,请确保给出3个整数的数组。没有更多,没有更少。记住int [3]表示3个整数的数组,第一个是在索引0处。如果混淆则查找数组。
答案 1 :(得分:0)
Azimjon指出,您的代码中存在一些错误,这是一个工作示例: