• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Fortran90についての質問です。)

Fortran90で正の整数を割った余りを求める手順を表すプログラムでエラーが発生する

このQ&Aのポイント
  • Fortran90で正の整数を割った余りを求める手順を表すプログラムを作成したが、コンパイル時にエラーが発生した。
  • エラーメッセージによると、IF文の構文が間違っているようだ。
  • プログラムのどこが間違っているのか、教えていただきたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.1

FORTRAN77で終わってしまったものなので、FORTRAN90仁対しては不正確な知識で回答しますが IF(m>0,n>0) THEN この文、比較式の結合条件がわかりませんね、m>0かつn>0なのか、m>0またはn>0んのかコンパイラは判断できません。 普通は、if(m>0 .and. n>0)など、論理演算子を使って条件式を結合するように書きます。 ところで、このプログラム、ちゃんと動きませんよ、nに0がセットされたら、k=a/nで除算例外が発生します。 それに、わざわざrealに変換する意味が不明(というより不要)です。すべて、整数の演算で処理すればいいはずです。

u260926i
質問者

お礼

言われたとおりに以下のように訂正したら、上手くいきました。 ありがとうございました。 INTEGER::m,n,k,r PRINT*,'Input 正の整数' READ*,m,n k=m/n IF(m>0.AND.n>0) THEN r=m-(k*n) PRINT*,'余り=',r END IF END

関連するQ&A

専門家に質問してみよう