while True:

問題5

100 個の実数を読み込み,最大値,及びそれが何番目に現れたかを出力するプログラムを作れ.ただし,最大値が複数回出現する場合も考慮せよ.

難易度 ★☆☆☆☆

基本的な問題です。解法が分かれば実装は簡単です。初めに最大値が何かを検索し、その後、最大値に一致する数値の位置を出力することで簡潔化できます。 最大値の初期値を0にしてしまうと、すべての実数が負だった場合に最大値が0となってしまうので注意が必要です。
program question5
	implicit none
	integer :: i
	real :: max_val
	real, dimension(100) :: values

	print *, "Input numbers(100): "
	read *, values
	
	max_val = values(1)
	do i = 1, 100
		if ( max_val < values(i) ) then
			max_val = values(i)
		end if
	end do
	
	print *, "Max val: ", max_val

	do i = 1, 100
		if ( max_val == values(i) ) then
			print *, "pos: ", i
		end if
	end do
end program question5
ページのトップへ戻る