• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:明日試験があります。アルゴリズムの問題が解けません。)

アルゴリズムの問題解けません!明日の試験に困っています

このQ&Aのポイント
  • 明日の試験に備えてアルゴリズムの問題を解きたいのですが、困っています。どのように表現すれば良いかわからずにいます。
  • アルゴリズムの多重反復処理の問題が分からず困っています。明日のテストに備えて、どうすれば良いか教えてください。
  • アルゴリズムの問題を解く必要があるのですが、どのように表現すれば良いか分かりません。明日の試験に向けて助けてください。

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★アドバイス >できればフロチャートで書いていただけたら助かります。  ↑  その前に while()、for() 文の反復処理を理解していますか?  他にも変数、代入、printf() 関数による表示を理解していますか?  問題はこの辺です。 ・アルゴリズムというよりは C ソースの記述方が分からないんじゃないの? >明日試験があります。  ↑  という事は今まで習ったことで解ける問題が出されるはずです。  何がまだ理解できていないかを教えて欲しいです。  (1)変数の宣言方法  (2)変数の代入または参照の方法  (3)while()、for() による反復の組み方  (4)条件式の記述方  (5)printf()関数による変数の表示方法  (6)その他  番号で補足してくれる助かります。 小テスト: ・本題をアドバイスする前に次の3つの問題を解いて下さい。  (1)変数 a を宣言して 123 という値を代入して下さい。   その後、変数 a を printf() 関数を使って画面に表示して下さい。  (2)変数 a と while() 文を用いて 1~10 までを printf() 関数で表示して下さい。  (3)変数 a、b の2つを利用して掛け算の九九の一覧表示をして下さい。   このとき for() 文を2段使って多重反復処理として記述して下さい。 ・上記の3つの問題をサラリと解いてみて下さい。  解けない場合は何が?どう?分からないかを補足して下さい。  今日の23時59分まで面倒見ます。 ・以上。

kannkoku12
質問者

お礼

Oh-Orange様、言葉足らずですみません。まだC言語を習っていなかったです。だから、whileの意味も分かりません。 いろいろ面倒みてくださってありがとうございます。 これから頑張って勉強します^^。

その他の回答 (4)

noname#50176
noname#50176
回答No.5

抜けがありました、失礼しました。 開始・・・端子記号(ソーセージ型) ↓ [A]: i←0(初期化);i≦5(条件);i=i+1(増量)… ループ端記号(左上部、右上部が斜めの長方形) ※i>5 ならループを抜けます ↓ [B]: a←1(初期化);a≦10(条件);a=a+1(増量)… ループ端記号(左上部、右上部が斜めの長方形) ※a>10 ならループを抜けます ↓ 数値iを表示・・・定義済み処理記号(左右2重線の長方形) ↓ [B]・・・ループ端記号(左下部、右下部が斜めの長方形) ↓ 改行(改行をする)・・・定義済み処理記号(左右2重線の長方形) ↓ [A]・・・ループ端記号(左下部、右下部が斜めの長方形) ↓ 終了・・・端子記号(ソーセージ型)

kannkoku12
質問者

お礼

VTClient様、とても丁寧な回答ありがとうございました。 おかげでなんとかテストはクリアできました^^。 表記しにくいのに、詳しく書いていただいて分かりやすかったです。 ありがとうございます!

noname#50176
noname#50176
回答No.4

図は無理なので(ここは文字書き込みですから)説明で・・・ 開始・・・端子記号(ソーセージ型) ↓ i←0・・・処理記号(長方形) ↓ [D]: i≦5(i>5 なら[A]へ)・・・判断記号(ひし形) a←1・・・処理記号(長方形) ↓ [C]: a≦10(a>10 なら[B]へ)・・・判断記号(ひし形) ↓ 数値iを表示・・・定義済み処理記号(左右2重線の長方形) ↓ a←a + 1・・・処理記号(長方形) ↓ [C]へ [B]: 改行(改行をする)・・・定義済み処理記号(左右2重線の長方形) i←i + 1・・・処理記号(長方形) [D]へ [A]: 終了・・・端子記号(ソーセージ型) がんばってください!

noname#50176
noname#50176
回答No.3

(訂正から) int a,i; for (i=0;i=<5;i++) for (a=1;a<=10;a++) printf("%d",i); printf("\r\n"); に訂正します。 *流れは... 開始 ↓ i←0 ↓ [D]: i≦5(i>5 なら[A]へ) a←1 ↓ [C]: a≦10(a>10 なら[B]へ) ↓ 数値iを表示 ↓ a←a + 1 ↓ [C]へ [B]: 改行(改行をする) i←i + 1 [D]へ [A]: 終了 流れはこんな感じです。

noname#50176
noname#50176
回答No.1

int a,i; for (i=0;i=<5;i++) for (a=0;a<=10;a++) printf("%d",i); printf("\r\n"); ではだめでしょうか? 反れますが、 #define N 5・・・最大値 int main() { int a; for (a=0;a<(N+1)*10;a++) if (!a || a%10) printf("%d ",a/10); else printf("\r\n%d ",a/10); return 0; } でも出来ます。

kannkoku12
質問者

補足

回答、大変ありがとうございました。 書き忘れたのですが、まだフロチャートの記号しかならっておらず、 できればフロチャートで書いていただけたら助かります。

関連するQ&A

専門家に質問してみよう