• ベストアンサー

Visual Basic 6.0

Visual Basicで 100から1までの数の中で3で割ると2あまる数を大きい順にでるようにプログラムしたいのですがどのようにすれば良いでしょうか? 詳しい方教えてください。

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

  • ベストアンサー
noname#78947
noname#78947
回答No.1

For i = 100 To 1 Step -1 If i - (Int(i / 3) * 3) = 2 Then Debug.Print i End If Next i 上記のプログラムでイミディエイトウィンドウに表示されます。

noname#31389
質問者

お礼

回答ありがとうございました。 なんとか表示させることができました。

その他の回答 (4)

noname#140971
noname#140971
回答No.5

100-I とマジックナンバーを埋め込んでいました。 よって、回答を修正します。 最大値+最小値=和 和-最大値=最小値 和-最小値=最大値 よって、和-I で逆転します。 問題は、和を埋め込むのでなく式で求めることが肝心。 m=100 - (100 mod 3) + 2 これがループ以前に必要でした。 ループ内は、 Debug.print m - i 大変、失礼しました。

noname#31389
質問者

お礼

回答ありがとうございました。 なんとか表示させることができました。

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.4

問い合わせに対する妥当な処理としては 剰余演算子(Mod)を使用する一例はどうでしょう。 Dim idx As Integer For idx = 100 To 1 Step By - 1 If (idx Mod 3 = 2) Then Debug.Print idx End If Next

noname#31389
質問者

お礼

回答ありがとうございました。 なんとか表示させることができました。

noname#140971
noname#140971
回答No.3

Private Sub Command1_Click()   Dim I As Integer      For I = 2 To 100 Step 3     Debug.Print 100 - I   Next I End Sub [イミディエイト] 98 95 ・・・ 2

noname#31389
質問者

お礼

回答ありがとうございました。 なんとか表示させることができました。

回答No.2

No.1さんのレスに補足です。 > If i - (Int(i / 3) * 3) = 2 Then は、 If i Mod 3 = 2 Then でも可ですね。

noname#31389
質問者

お礼

回答ありがとうございました。 なんとか表示させることができました。

関連するQ&A