while True:

問題12

0 以上 1 未満の多数の実数を読み込み,0 以上 0.1 未満, 0.1 以上 0.2 未満, 0.2 以上 0.3 未満, …の区間に入る個数を数えるプログラムを作れ. かつ各区間に入る個数を区間とともに表として出力するプログラムとせよ.ただし,実数の数は 100 以下としてよい.

難易度 ★★☆☆☆

標準的な問題です。配列を使わなくても解けますが、ここは入力を配列に入れることで簡略化できます。それぞれの区間においての個数をDOのなかで調べてあげるとよさそうです。
program question12
	implicit none
	integer :: n, i, j, count
	real, allocatable :: num(:)

	print *, "input n:"
	read *, n

	allocate(num(n))

	print *, "input values:"
	read *, num

	do i = 0, 9
		count = 0
		do j = 1, size(num)
			if ((i * 0.1) < j .and. j < (i * 0.1 + 0.1)) then
				count = count + 1
			end if
		end do
		print *, i * 0.1, "~", i * 0.1 + 0.1, ":", count
	end do

end program question12
ページのトップへ戻る