トピック
あっくん♪ nande0612

0を表示させないには

入力した数の約数を表示するプログラムを書いたんですけど最後のほうは0がずらーっと並びます。配列変数を使っているのですが0を表示させないようにするにはどうすればいいですか?
0そうだね
プレイ済み
返信[1]
親投稿
Hanzo rzsense
0でないときだけ表示させるようにすればよいのです。 具体的には、7行目を IF B[I]!=0 THEN PRINT B[I] とします。 ところで、DIMで配列を宣言するだけでは、その中身が0とは限らないので、 配列宣言のあとに FILL B,0 として、配列変数の中身を0にそろえておきましょう。
0そうだね
プレイ済み
返信[2]
親投稿
あっくん♪ nande0612
ありがとうございます!!
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
入力した数が99を越えた場合約数が正しく表示できないと思います。 入力する数値を制限するか約数の保存の仕方を工夫して入力した 数まで比較をするようにするかしないと100以上の数字の場合に 100以上の約数が表示されません。
0そうだね
プレイ済み
返信[4]
親投稿
あっくん♪ nande0612
ありがとうございます! ここでもうひとつ質問です。 今のところのプログラムで60と入れると写真上部の結果になります(色は気にしないで)。縦にいくと約数が多いとき上の方が見えなくなるかもしれないので横にコンマを付けながら並べていき右端までいったら改行する(下部)ようにしたいのですがどうしたらいいでしょうか?
0そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
7行目 IF B[I]!=0 THEN PRINT B[I] としているなら IF B[I]!=0 THEN IF CSRX+LEN(STR$(I))>48 THEN PRINT PRINT B[I];","; ENDIF としてみて下さい。 数字を表示したときに右端をオーバーする場合は改行するようにしてあります。
0そうだね
プレイ済み
返信[6]
親投稿
otta777 otta777a
間違えました。 STR$(I)→STR$(B[I])に直して下さい。
0そうだね
プレイ済み
返信[7]
親投稿
あっくん♪ nande0612
本当にありがとうございます!! 今、写真の通りのプログラムですけど、約数が多い数を入力すると、途中で終わってしまうんですよ。だから2行目や3行目まで行けるようにはできませんか? 質問多くてすみません。
0そうだね
プレイ済み
返信[8]
親投稿
Hanzo rzsense
12行目の条件式の後ろに(改行せずに)続けて、次の文を入力しましょう。 ELSE PRINT:PRINT B[I];",";
1そうだね
プレイ済み
返信[9]
親投稿
otta777 otta777a
途中で終わっていたのでは無く、表示が画面の右端を越えてしまうと 判断された場合約数を表示する部分が実行されていなかったため 1行目しか表示されていなかったというわけです。 Hanzoさんの示された方法で解決できますね。
0そうだね
プレイ済み
返信[10]
親投稿
あっくん♪ nande0612
ありがとうございます!!!! お礼(?)にマリオBGM集を作ってみました。よかったら聴いてください。勝手に使って下さい。公開キー『5KAKQ3KY』間違ってたらすみません。
0そうだね
プレイ済み