2016-03-26 11 views
-1

グレードのチェックループが無効である理由は何ですか?

グレード入力の検証(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; 
} 
+0

コードは問題ありません。あなたの問題は何ですか? – DimChtz

+0

「0未満」 - 実際の入力はどのように見えますか? – Ian

+0

あなたの最低限の機能は、 'ngrades'ではなく、' grades [i] 'の値が0より小さい値を入力していることを確認してください:p ..ただ確実にしたい.. –

答えて

-2

あなたのコードは私にとってはうまくいくようです。 再構築しましたか?

http://i.stack.imgur.com/X8XiX.png

+0

うん、まだ私のために動作しません – user2969508

+0

何学年ですか? (MAX = 50)3 平均等級4 =平均= 2 最大値より1.66667 #を入力グレード2 を入力グレード-1 を入力し------------- = 4 あります------------------- 戻り値が0である7.955秒後にプロセスが終了しました 任意のキーを押して続行します。 。 。 – user2969508

+0

グレードはいくつですか? (MAX = 50)3 平均等級4 =平均= 2 最大値より1.66667 #を入力グレード2 を入力グレード-1 を入力し------------- = 4 あります------------------- 戻り値が0である7.955秒後にプロセスが終了しました 任意のキーを押して続行します。 。 。 – user2969508

関連する問題