C++ 虽然用于检查成绩的循环无效,但由于某些原因,该循环不起作用

C++ 虽然用于检查成绩的循环无效,但由于某些原因,该循环不起作用,c++,arrays,function,while-loop,C++,Arrays,Function,While Loop,这就是我正在研究的问题 带有输入验证的成绩(C++)。使用数组和函数修改grade程序。(程序应至少具有平均值、最小值、最大值、高于平均值等功能。共有4个功能)添加逻辑(主)以便如果用户输入无效等级(低于零、高于100),将向用户发出错误消息,然后允许用户重新输入等级。只要用户输入无效分数,此操作就会重复。您将需要一个While循环 当我输入一个小于0的数字时,由于某种原因,它不会执行while循环中的代码,而且我的minimum函数也不起作用 这是我的主函数和最小函数的代码 #include

这就是我正在研究的问题

带有输入验证的成绩(C++)。使用数组和函数修改grade程序。(程序应至少具有平均值、最小值、最大值、高于平均值等功能。共有4个功能)添加逻辑(主)以便如果用户输入无效等级(低于零、高于100),将向用户发出错误消息,然后允许用户重新输入等级。只要用户输入无效分数,此操作就会重复。您将需要一个While循环

当我输入一个小于0的数字时,由于某种原因,它不会执行while循环中的代码,而且我的minimum函数也不起作用

这是我的主函数和最小函数的代码

#include <iostream>
using namespace std;

double average(double x[], int n);
double maximum(double x[], int n);
double minimum(double x[], int n); 
int nAboveAvg(double x[], int n);



int main()
{
   double grades[50];
   int ngrades;

   cout<<"How many grades? (max = 50) ";
   cin>>ngrades;

   //create for loop to get grades from user
   for(int i = 0; i<ngrades; i++)
   {
          cout<<"Enter grade ";
      cin>> grades[i];
      while(grades[i]< 0 || grades[i] > 100)
      {
          cout<<"Invalid grade- please enter again"<<endl;
          cin>>grades[i];
      }
  }

  //call the functions
  double avg = average(grades, ngrades);
  double max = maximum(grades, ngrades);
  double min = minimum(grades, ngrades);
  int nAbove = nAboveAvg(grades, ngrades);
  //display results

  cout << "Average = " << avg << endl;
  cout << "# above average = " << nAbove << endl;
  cout<<"Max value is = "<<max<<endl;
  cout<<"Min value is = "<<min<<endl;


}
//Minimum function

double minimum(double x[], int npts)
{

  double min = x[0];

  for(int i = 0; i < npts; i++) 
  {
        if(x[i] < min) 
        {

            min = x[i];
        }
    }
  return min;
}
#包括
使用名称空间std;
双倍平均(双倍x[],整数n);
双倍最大值(双倍x[],整数n);
双最小值(双x[],整数n);
int-nAboveAvg(双x[],int-n);
int main()
{
双级[50];
国际等级;
coutngrades;
//创建for循环以从用户获取分数
对于(int i=0;i 100)
{

你的代码似乎适合我。 你试过重建它吗


你的代码很好。你的问题是什么?“小于0”-你的实际输入看起来如何?你的最小函数很好。确保你为
等级[i]
输入的值小于0,而不是
ngrades
:p..只是想确定..嗯,这很奇怪,我也遵守了,但对我来说仍然不起作用多少等级?(最大值=50)3输入等级-1输入等级2输入等级4平均值=1.66667#高于平均值=2最大值为=4------------------进程在7.955秒后退出,返回值为0按任意键继续…有多少等级?(最大值=50)3输入等级-1输入等级2输入等级4平均值=1.66667#高于平均值=2最大值为=4--------------------进程在7.955秒后退出,返回值为0按任意键继续…这就是我的输出看起来的样子OK nevermind我让它也工作了,但它没有打印最小值