C++ 如何创建一个函数来计算并返回平均值、最大值和最小值?

C++ 如何创建一个函数来计算并返回平均值、最大值和最小值?,c++,function,loops,C++,Function,Loops,这就是我要做的,我想创建一个函数,它将计算并返回(使用旁路引用)平均值、最大值和最小值。有点新的C++,所以我非常感谢帮助。 这正是我想要做的: 程序描述了它应该做什么 提示用户输入介于1和10之间的数字,然后用正浮点数填充数组 使用函数输出浮点数组的内容 使用函数计算浮点数组的平均值、最大值和最小值。这些值在传递引用变量中返回 输出计算值 如果用户在任何时候输入了无效的输入,请再次提示他们 安全终止 代码如下: //include go here #include <cstdio&g

这就是我要做的,我想创建一个函数,它将计算并返回(使用旁路引用)平均值、最大值和最小值。有点新的C++,所以我非常感谢帮助。 这正是我想要做的:

  • 程序描述了它应该做什么
  • 提示用户输入介于1和10之间的数字,然后用正浮点数填充数组
  • 使用函数输出浮点数组的内容
  • 使用函数计算浮点数组的平均值、最大值和最小值。这些值在传递引用变量中返回
  • 输出计算值
  • 如果用户在任何时候输入了无效的输入,请再次提示他们
  • 安全终止
代码如下:

//include go here
#include <cstdio>
#include <iostream>
#include <cfloat>

using namespace std;


//Constants go here
const int MAX = 10;
const int MIN = 1


//outputs overview of program to user 

void displayOverview();



//prompts user to enter a number between min and max and return it
//validated using a loop

int getIntInRange(int min, int max);



//prompts user to enter a floating point number that is > 0
//validated using a loop

float getPositiveFloat();



//prompts user for size of array (< size)
//fills nums with that many floating point values

int fillArray(float nums[], int size);


//outputs the array

void printArray (float arr[], int Size);



  //Computes and returns the mean, maximum, and minimum

void computesValues(float arrr[], int size, float &mean, float &max, float &min);



int main(){

  displayOverview();


  float myArr[MAX];
  int size = fillArray(myArr, MAX);

  return 0;
}


//Prompt user to enter a number between Min and max
//If user entered a number within the range, is valid is true
//If user entered a number not within min and max, output sorry not in range

int getIntInRange(int min, int max){

  int userInput = -1;
  bool isValid = false;
  while(!isValid){

    printf("Please enter an integer between %d and %d\n", min, max);

    scanf("%d", &userInput);
    if(min <= userInput && userInput <= max){
      isValid = true;
}else{
  printf("Sorry, that is not in range\n Please try again\n");
}
  }

  return userInput;
}


//int numVals
int fillArray(float nums[], int size){

  int numVals = getIntInRange(MIN, MAX);

  for(int i=0; i< numVals&& i<size ; i++){

    nums[i] = getPositiveFloat();

  }


  return numVals;
}

//Prompt user to enter a positive number
//if User enters a number that is not positive, output "Not a Positive"
float getPositiveFloat(){

  float input;
  do{
    cout << "Please enter a positive number\n";
    cin >> input;
    if(!(input>0)){
      cout << "Not a positive!\n";

    }

  }while(!(input>0));

  return input;


}


//Introduction to the program
void displayOverview(){

  cout << "Welcome to my program. You will see how magically I can compute things " << 
"from numbers!!" << endl;

}


//Print an array
void printArray(float arr[], int size){

  for (int i = 0; i<size; i++){
    cout << arr[i] << " ";
  }
}


//Compute Min, max and mean.
void computesValues (float arr[], int size, float &mean, float &max, float &min){



}
//包括转到此处
#包括
#包括
#包括
使用名称空间std;
//常数在这里
常数int MAX=10;
常数int MIN=1
//向用户输出程序概述
void displayOverview();
//提示用户输入一个介于最小值和最大值之间的数字并返回它
//使用循环进行验证
int getIntInRange(int最小值,int最大值);
//提示用户输入大于0的浮点数
//使用循环进行验证
float getPositiveFloat();
//提示用户输入数组的大小(无效值)计算值(浮点arr[],整数大小,浮点和平均值,浮点和最大值,浮点和最小值)
{
浮动总和=0.0;
对于(int i=0;i
void computesValues (float arr[], int size, float &mean, float &max, float &min)
{
    float sum = 0.0;
    for (int i = 0; i<size; i++){
        sum = sum+ arr[i]; 
    }
    mean = sum/size;
    max = arr[0];
    for (int i = 1; i<size; i++){
        if(arr[i] > max)
            max = arr[i];
    }
    min = arr[0];
    for (int i = 1; i<size; i++){
        if(arr[i] < min)
            min = arr[i];
    }
    printf("mean = %f max = %f min = %f\n", mean, max, min);
}