プロが教える店舗&オフィスのセキュリティ対策術

C言語についてわかる方いますか?
この問題の回答がわからくて困ってます。
回答お待ちしてます。よろしくお願いいたします

「C言語について」の質問画像

質問者からの補足コメント

  • これ以上画質良くならないので、問題文載せました。
    1行につき17個の記号(空白または✳︎)を9行に渡って表示するプログラム ただし、2つのfor文から成る二重ループを1個と、elseifブロックを含まないif文を1つだけ使うこと。
    です

      補足日時:2017/12/08 15:30
  • 全部とは言わないので、まずどうしたら良いか、ヒントが欲しいですm(_ _)m

      補足日時:2017/12/08 15:37

A 回答 (4件)

No.2です。



> まずどうしたら良いか、ヒントが欲しいですm(_ _)m

つまりはC言語がわからないのではなく「問題に示された図を描く処理手順が分からない」ということでよいですか?
その場合、No.2に書きました「なお、ループの件は行のループと1行書く中での列のループという2重ループであることは自明でしょう。」は納得ですか? その意味も理解できませんか?

ヒント:
(1) 行は上から下に向かって書き出す。9行なのでループの実行回数は9回で10回目に抜ける
(2) 列の文字列は左から右に向かって書き出す(正確には出力用の文字列を生成する)
(3) 問題の図を見ると以下のようになっている
 1) 1行目は最初の1文字と最後から1文字目以降が*で、それ以外は空白
 2) 2行目は最初の2文字と最後から2文字目以降が*で、それ以外は空白
 3) 3行目は最初の3文字と最後から3文字目以降が*で、それ以外は空白
  ・
  ・
  ・

ポイント:
(1) 9行目をどう表現するとヒントの(3)に示した1行目から全ての行の表現が都合よく書き表されるかを考える
(2) 行と列のカウントを制御する変数は0オリジンが都合が良いか、1オリジンが都合がよいかを考える

参考まで。
    • good
    • 0

>まずどうしたら良いか、ヒントが欲しいです


2つのfor文から成る二重ループを1個と、elseifブロックを含まないif文を1つだけ使うこと

これがヒントだと思いますよ

もっと言うと
9行表示するということは一つ目のループはi <= 9
1行17個の記号ということは二つ目のループはj <= 17

です
    • good
    • 0

質問者様の今の状況は「C言語でのプログラムが書けない」のではなく「処理アルゴリズムが分からない」のだと思います。


なので恐らく「C言語の問題」と考えていること自体が誤りです。
ループの段数とかelseifは使うなとか、模範解答ありきのちょっとおバカな指定がされていますが、まずはこの図形を描く処理手順を日本語で書き出してみることです。
箇条書きでもよいですし、チャート図を習っているのでしたらそれで書き表せばループやらelseifの件もあわせて考えることが出来て楽でしょう。

なお、ループの件は行のループと1行書く中での列のループという2重ループであることは自明でしょう。

参考まで。
    • good
    • 0

あなたがその問題の何が分からないのかが分からなくて私も困っています



せめて自分が作れるところまでソースを作ってみて
分からない部分を聞くなりしてください

それは質問ではなく、課題の丸投げです
    • good
    • 0

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