2016-10-31 4 views
0

私は、統計に基づいてNFLレシーバを「等級付け」するコードを書こうとしています。私はクラスプロジェクトのために比較的簡単なプログラムですが、Matlabでエラーが発生している可能性があります(これはwhileループを過ぎて実行されていませんが、基本的にはYPCを表示しますが、 whileループ)。しかし、私は働くコードが大好きです。私が間違っている箇所を指摘してください!ありがとうこのMATLABコードではどこがうんざりですか?

yards = input('Yards per game/season: '); 
rec = input('Receptions per game/season: '); 
long = input('Longest reception per game/season: '); 
TD = input('Touchdowns per game/season: '); 

YPC = (yards/rec); 
display('Average Yards per Catch (YPC): '); 
display(YPC); 

grade = 0; 

while YPC >= 1 
    if YPC >= 5.7 %NFL Average YPC 
     grade = grade + 50; %Gives Reciever a 50 baseline rating if above average YPC 
    else 
     grade = grade + 25; %Gives Reciever a 25 baseline rating if below average YPC 

     if long >= 67.4 %NFL Average Longest Reception 
      grade = grade + (long/8); %Adds the longest reception divided by 8 to the grade if above average Long 
     else 
      grade = grade - (long/16); %Subtracts the longest reception in 16 games from the grade if below average Long 

      if TD >= 7.75 %NFL Average TD/Recievers 
       grade = grade + ((TD * 10)/16); %Adds the number of touchdowns times 10, divided by 16 games if above average TDs 
      else 
       grade = grade + ((TD * 7)/16); %Adds the number of touchdows times 7, divided by 16 games if below average TDs 
      end 
     end 
    end 
end 

display(grade); 
+0

YPCは中で決して変更されません。新しい入力を求めるために、whileループ内で入力コマンドを移動したいと思うかもしれません。 –

+0

エラーや警告が表示された場合は、必ず質問に記載してください。 – Bernhard

答えて

1

は多分これはあなたが探しているものです。

YPC = 2; 

while YPC >= 1 

    yards = input('Yards per game/season: '); 
    rec = input('Receptions per game/season: '); 
    long = input('Longest reception per game/season: '); 
    TD = input('Touchdowns per game/season: '); 

    YPC = (yards/rec); 
    display('Average Yards per Catch (YPC): '); 
    display(YPC); 

    grade = 0; 

    if YPC >= 5.7 %NFL Average YPC 
     grade = grade + 50; %Gives Reciever a 50 baseline rating if above average YPC 
    else 
     grade = grade + 25; %Gives Reciever a 25 baseline rating if below average YPC 

     if long >= 67.4 %NFL Average Longest Reception 
      grade = grade + (long/8); %Adds the longest reception divided by 8 to the grade if above average Long 
     else 
      grade = grade - (long/16); %Subtracts the longest reception in 16 games from the grade if below average Long 

      if TD >= 7.75 %NFL Average TD/Recievers 
       grade = grade + ((TD * 10)/16); %Adds the number of touchdowns times 10, divided by 16 games if above average TDs 
      else 
       grade = grade + ((TD * 7)/16); %Adds the number of touchdows times 7, divided by 16 games if below average TDs 
      end 
     end 
    end 
    display(grade); 
end 

これは、新しい入力値のための新グレードを計算できるようになります。ループの開始時に新しい値が出て終了するだけで、1ゲームあたりの値に0の値が与えられます。

+0

ありがとう、これは完全に – Yanny

+0

@ヤニー働いた、答えを受け入れてください。 –

関連する問題