FORTRANで成績を入力して、平均、標準偏差、最大点、最小点を出力するプログラムを作成したいのですが、うまくいきません。最大点、最小点を求める部分が、間違っていると思われます。どのようにすれば、うまくいくでしょうか。
入力値を配列に代入し、配列の数値から最大点、最小点を求めるコードを個人的にはイメージしていました。
以下コードです
program seiseki
integer :: n=0, i,mark,xmax,xmin,a(100)
real :: w = 0.0, v = 0.0, mean, sd
do
print *,"点数を入力してください."
read *, mark
print *,"終了するなら−1を入力"
IF (mark < 0) exit
n = n + 1; w = w + mark; v = v + mark2
a(n) = mark
end do
xmax = maxval(a,1)
xmin = minval(a,1)
if (n>0) then
mean = w/n ; sd = sqrt(v/n - mean2)
print '( "平均点 =", F5.1)', mean
print '( "標準偏差=", F5.1)', sd
end if
print '( "生徒総数=", I5)', n
print *,"最大値",xmax,"最小値",xmin
end
以下、実行画面です
点数を入力してください.
60
終了するなら−1を入力
点数を入力してください.
70
終了するなら−1を入力
点数を入力してください.
80
終了するなら−1を入力
点数を入力してください.
90
終了するなら−1を入力
点数を入力してください.
100
終了するなら−1を入力
点数を入力してください.
-1
終了するなら−1を入力
平均点 = 80.0
標準偏差= 14.1
生徒総数= 5
最大値 1711030272 最小値 -2147483648

下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。