• 締切済み

プログラミング

c言語プログラミングについて教えてください。 2次元配列で以下の様に数字の昇順(渦巻き状に)にアクセスするにはどうしたらいいでしょうか? 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9

  • musme
  • お礼率9% (1/11)

みんなの回答

  • wormhole
  • ベストアンサー率28% (1620/5655)
回答No.2

アクセスするヶ所の添字を定義しておくとか。 struct position_t { int x; int y; }; struct position_t pos[] = { { 0, 0}, { 1, 0}, { 2, 0}, { 3, 0}, { 4, 0}, { 4, 1}, { 4, 2}, { 4, 3}, { 4, 4}, { 3, 4}, { 2, 4}, { 1, 4}, { 0, 4}, { 0, 3}, { 0, 2}, { 0, 1}, { 1, 1}, { 2, 1}, { 3, 1}, { 3, 2}, { 3, 3}, { 2, 3}, { 1, 3}, { 1, 2}, { 2, 2}, {-1, -1}, }; int dim2x2[5][5]; for (int i = 0; pos[i].x >= 0; i++) { dim2x2[pos[i].y][pos[i].x] }

  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.1

動作確認していないけれどこんな感じかな。 int count, index1, index2, direction1, direction2, range; begin, val; index1=-1; direction1=1; range=5; for (count=1; count<=25;count++){ index1+=direction1; index2+=direction2; val=array[index1][index2]; if (index1==range && index2==begin) { direction1=0; direction2=1; } else if (index1==range && index2==range) { direction1=-1; direction2=0; } else if (index1==begin && index2==range) { range--; begin++; direction1=0; direction2=-1; } else if (index1==begin && index2==begin) { direction1=1; direction2=0; } }

関連するQ&A

  • プログラミングの質問です。

    c言語でお願いします。 以下の結果が得られるようなプログラムを書いてください。 期末試験では必ずフローチャートを書いてください。また、フローチャートが 書けない場合は、どういう順番でプログラムを書けば よいかを書いてください。 1.数字を5個続けて入力させ、大きい順に並び替え、出力する。(配列を使う事) プログラミングわからないのでお願いします。

  • プログラミングで

    当方、環境はUNIXでプログラミング初心者なのですが、 整数型二次元配列[5][5]宣言; ファイルポインタ宣言; 読み込みファイルオープン; ファイルから読み込みループ; 行の昇順ソート; 列の昇順ソート; 出力ループ; ファイルクローズ; リターンゼロ; これをプログラミングする場合は main(){ からテキストファイル名はsort.txtと仮定すると どのように書いたらいいのでしょうか?

  • プログラミング言語 rubyを用いて、

    プログラミング言語 rubyを用いて、 画像処理プログラミングを書こうとしていますが、以下の点が分かりません。 1・メモリの動的確保はどうするの?(C言語でいうmalloc) 2・ファイルから配列に展開するにはどうしたらいいの? 以上が分かればわかるきがするのですが・・ 当方 C言語での画像処理プログラミングはそれなりに経験があるのですが rubyで実現できるのかわからなくて・・

    • ベストアンサー
    • Ruby
  • プログラミングの問題です。

    プログラミングの質問です。 c言語でお願いします。 以下の結果が得られるようなプログラムを書いてください。 期末試験では必ずフローチャートを書いてください。また、フローチャートが 書けない場合は、どういう順番でプログラムを書けば よいかを書いてください。 年月日を数字8個で入力させ、「今日は○年○月○日です」と 表示させてください。 プログラミングわからないのでお願いします。

  • プログラミングの乱数

    c言語、c++の乱数rand()の使い方がよくわかりません。わかりやすい説明をお願いします。 あと、プログラミングが得意な方にお願いです。 [0,1]乱数で平均と分散を求めるプログラムを配列なしで作ってください。

  • C言語のプログラミングのある問題について・・・?

     私は、ある大学に通う二年生です。実は、授業でC言語のプログラミングの授業があるのですが、includeとか、for文とか、とにかくそこに出てくる用語も全然と言っても良いぐらい分からないし、それにその科目を教えている先生から課題が出されました。  その課題というのは、以下の問題です。誰か僕に力をください。  お願いします。   問    正の整数1から10までの範囲でパスカルの三角形を画面上に出力するプログラムを作り、さらにその三角形をもう一つ組み合わせてひし形を作り、ひし形が出力できるように補修せよ。  (注)「使用できる配列は、1次元に限る」という条件を守って作ること。

  • C言語を使用したプログラミング方法

    C言語をしようして、二次元配列に入ってるフォントデータを呼んで「@」と「O」で漢字一文字をコンソール画面に表示するプログラミングを教えていただけますか? 配列は[24][32]を使用します。 0のときは@で表示、1のときはOで表示 文字の例:木 24行、32列で文字を表現したいです。 @@@@@O@@@@@ @@@@@O@@@@@ @OOOOOOOOO@ @@@@OOO@@@@ @@@O@O@O@@@ @@O@@O@@O@@ @O@@@O@@@O@ O@@@@O@@@@O

  • C言語のプログラミング作成なのですが....

    C言語の問題なのですが、大きさ100の配列に1から10の一様乱数を格納しヒストグラムを*を使ってプログラミングするというものなのですがさっぱりわかりません。わかる方どうかよろしくお願いします。

  • プログラミングの質問です。

    c言語でお願いします。 以下の結果が得られるようなプログラムを書いてください。 期末試験では必ずフローチャートを書いてください。また、フローチャートが 書けない場合は、どういう順番でプログラムを書けば よいかを書いてください。 1.年月日を数字8個で入力させ、「今日は○年○月○日です」と 表示させてください。 プログラミングわからないのでお願いします。

  • プログラミング 問題 java

    大学のプログラミングの授業でjavaを勉強しています。 先週課題が出たのですが書き方がわかりません。 4×4の形の二次元配列Aの内容を準備し、同じく4×4の形の二次元配列Bに、下図のように90度回転するようにして移すプログラミングを作るという問題です。 わかる方いたら回答お願いします(>_<)

専門家に質問してみよう