2017-08-09 5 views
1

3と5の倍数の最初の1234(両方の倍数を含む)を合計するFortran 90コードを書き込もうとしています。これまでのコードはこれまでのところです:3と5の最初の1234の倍数を合計するコードでは何も印刷されません

program sum 
implicit none 
integer :: x 
integer :: y = 5 
integer :: z = 3 
integer :: n 
if (mod(x,y) == 0 .or. mod(x,z) ==0) then 
print *, x 
n = x 
n = x + x 
end if 
end program sum 

ただし、このコードでは端末に何も印刷されません。

答えて

0

あなたのコードはif状態でxの値をテスト:

if (mod(x,y) == 0 .or. mod(x,z) ==0 

が、xの値が全く設定されていません。したがって、プログラムの結果は完全に定義されていません。何らかのループを作成する必要があります。 2つのループが改善されました。

最も純粋なアプローチは、1からループして上記の条件ですべての数値をテストし、希望の倍数を見つけたら停止します。

+0

こんにちは、ご返信ありがとうございます。どのようなループをお勧めしますか?私はx = 1を追加しました.1つの非常に大きな数字が出力されるので、最初の1234の倍数に制限する必要があります。これをどうやってやりますか? – youngfreedman

+0

DO WHILEまたは他のDOループを検討する価値があります。いくつかの境界と初期化されていない変数フラグを使用してコンパイルすると、初期段階でホップできます。 – Holmz

関連する問題