-PR-
解決済み

for文

  • すぐに回答を!
  • 質問No.75405
  • 閲覧数513
  • ありがとう数5
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 83% (10/12)

forを使って九九の表を作るのですが、
フローチャートすら書けないでいます。
そもそものfor文の意味もわかりません。
誰か分かりやすく説明してください。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル7

ベストアンサー率 33% (3/9)

下のお二方の解説を参考に穴埋めでやってみましょう。
□のところに変数、△に演算子、○に数字を入れて適当に実行してみて
その動作を確認して下さい。

#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文って最初は頭がこんがらがっちゃうんですよね。
お礼コメント
misty

お礼率 83% (10/12)

おかげでプログラムが作れそうです。これで実際にやってみたいと思います。
ありがとうございました
投稿日時 - 2001-05-16 19:54:33
関連するQ&A
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

for は繰返しの処理をするための構文で、以下のような形を取ります。 for (最初にすること ; ループの継続条件 ; ループの最後にすること)   繰り返すこと 変数i を1~10まで繰り返すのであれば int i; for (i = 1 ; i <= 10 ; ++i) {   printf("i=%d\n", i);  /* i を使った処理 */ ...続きを読む
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まで、
それぞれ繰り返すということですよね。

# もう少し書いた方が良いですか?
お礼コメント
misty

お礼率 83% (10/12)

forについての説明、ありがとうございました。先生よりも分かりやすかったです。
投稿日時 - 2001-05-16 19:50:15


  • 回答No.2
レベル11

ベストアンサー率 61% (157/255)

::::::::::::::::::::::::::: for (★; △; ▲) { ■ } □ ::::::::::::::::::::::::::: 以下の順番で実行が繰り返されます。 (1)はじめに一回★が実行されます。 (2)△の条件判定に合格したら■が順に実行されます。不合格だとFOR文の繰り返しは終わりです。 (3)■が実行し終えたら▲が実行されます。そして ...続きを読む
:::::::::::::::::::::::::::
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 (~){

   }

}

という感じです。

これだけわかれば、あとはプログラムをちょろちょろ直感で書いていても
そのうち動くときが来そうです。
お礼コメント
misty

お礼率 83% (10/12)

これを元にして、展開していきたいと思います。ありがとうございました。
投稿日時 - 2001-05-16 19:52:12
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ