グレード入力の検証(C++)です。配列や関数でグレードプログラムを変更する。 (プログラムには平均、最小、最大、#平均以上などの関数が最低で4つあります)ユーザーが無効な等級(0より小さい、100より大きい)を入力した場合、ユーザーにエラーメッセージが表示され、グレードを再入力することが許可されます。これは、ユーザーが無効な成績を入力する限り繰り返されます。 Whileループが必要です。私は0よりも数値が低い入力すると
、それは、何らかの理由で、whileループ内のコードを実行されていません。また、私の最低限の機能が働いていないか
ここでは主な機能のために私が持っているコードですと最小機能
#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;
}
コードは問題ありません。あなたの問題は何ですか? – DimChtz
「0未満」 - 実際の入力はどのように見えますか? – Ian
あなたの最低限の機能は、 'ngrades'ではなく、' grades [i] 'の値が0より小さい値を入力していることを確認してください:p ..ただ確実にしたい.. –