アプリ版:「スタンプのみでお礼する」機能のリリースについて

forを使って九九の表を作るのですが、
フローチャートすら書けないでいます。
そもそものfor文の意味もわかりません。
誰か分かりやすく説明してください。

A 回答 (3件)

下のお二方の解説を参考に穴埋めでやってみましょう。


□のところに変数、△に演算子、○に数字を入れて適当に実行してみて
その動作を確認して下さい。

#include <stdio.h>
void main()
{
int i,j;

printf(" 1 2 3 4 5 6 7 8 9\n\n");

/* 外側のfor文 iが1~9まで */
for(i=1;i△9;□++){

printf("%2d ",i);

/*内側のfor文 jが1~9まで */
for(j=○;j<=○;j△){
printf(" %2d",i□j);/* i×j の答えを表示 */
}

printf("\n");
}

}

よけい分かりにくかったらすいません。
2重のfor文って最初は頭がこんがらがっちゃうんですよね。
    • good
    • 0
この回答へのお礼

おかげでプログラムが作れそうです。これで実際にやってみたいと思います。
ありがとうございました

お礼日時:2001/05/16 19:54

:::::::::::::::::::::::::::


for (★; △; ▲)
{

}


:::::::::::::::::::::::::::

以下の順番で実行が繰り返されます。

(1)はじめに一回★が実行されます。
(2)△の条件判定に合格したら■が順に実行されます。不合格だとFOR文の繰り返しは終わりです。
(3)■が実行し終えたら▲が実行されます。そして、(2)へ再び移ります。

こうやって、(2)で条件判定が不合格になるまで繰り返されます。


§九九を考える
九九の表をいきなり考えると難しいかもしれません。

ここは、九九の表ではなくて、1~9だけの表を考えましょう。

1
2
3
4
5
6
7
8
9

全ては書きませんが、(1)のはじめに★が「1」になるようにして、
(2)の条件判定のところでは、「9以下」という判定文にすると、
うまくいきますね、(3)の▲のところは1増やす、という感じでしょうか?

ここまでできれば、簡単かもしれません。
次に九九とは、さきほどの1~9のそれぞれの「中」に、さらに1~9がある
と考えれば良いですね。
一番左の数時と、それぞれの行の中から1つとったものの一覧表が九九だといえます。

1 -- 1 2 3 4 5 6 7 8 9
2 -- 1 2 3 4 5 6 7 8 9
3 -- 1 2 3 4 5 6 7 8 9
4 -- 1 2 3 4 5 6 7 8 9
5 -- 1 2 3 4 5 6 7 8 9
6 -- 1 2 3 4 5 6 7 8 9
7 -- 1 2 3 4 5 6 7 8 9
8 -- 1 2 3 4 5 6 7 8 9
9 -- 1 2 3 4 5 6 7 8 9

ということは、FOR文のなかに、FOR文があるという感じになるでしょうか。。。

::::::::::::::::::::::::::::::::::::::::::::

外側のFOR文、、、上の一番左の数値の1~9を担当する
for (~){

   内側のFOR文、、、上の各行の横に並んだ1~9を担当する
   for (~){

   }

}

という感じです。

これだけわかれば、あとはプログラムをちょろちょろ直感で書いていても
そのうち動くときが来そうです。
    • good
    • 0
この回答へのお礼

これを元にして、展開していきたいと思います。ありがとうございました。

お礼日時:2001/05/16 19:52

for は繰返しの処理をするための構文で、以下のような形を取ります。



for (最初にすること ; ループの継続条件 ; ループの最後にすること)
  繰り返すこと

変数i を1~10まで繰り返すのであれば

int i;
for (i = 1 ; i <= 10 ; ++i) {
  printf("i=%d\n", i);  /* i を使った処理 */
}

という感じ。

九九の表ですから、1の段について1~9を、2の段について…、と
9の段まで行なうのですから、ループが二重になりますね。

要は 「何とか」×「何とか」のふたつの「何とか」を1~9まで、
それぞれ繰り返すということですよね。

# もう少し書いた方が良いですか?
    • good
    • 0
この回答へのお礼

forについての説明、ありがとうございました。先生よりも分かりやすかったです。

お礼日時:2001/05/16 19:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!