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

C言語で二次元の配列a[11][11]を考えたとき、a[1][0]はxy座標の(1,0)を、a[0][5]はxy座標の(0, 5)を表しているという風な考えはあっているのでしょうか?
また、C言語で、xy座標で(0.5, 3.1)などの小数を表そうとしたらどうしたら良いのでしょうか?

A 回答 (5件)

もう少し数の小さい例で説明します。


以下のように配列を宣言したとします。

***************
//配列宣言
int a[3][4];
***************

この場合 int型の値を格納できる変数が3×4=12個
作られたと考えることができます。

配列の使い方は以下のようになります。

*********************
//配列の扱い方の例
a[0][0]=1;
a[0][1]=234;
a[0][2]=-123;
a[0][3]=5;

a[1][0]=a[0][2];



*******************
つまり普通のint型の変数とそれぞれが同じ扱い方ができます。
どの様に使うかは様々です。

イメージとしては

  [0][1][2][3]
[0] □ □ □ □
[1] □ □ □ □
[2] □ □ □ □

このようなint型の値が格納できる箱が用意されるような感じです。

ここからは主観ですが
配列で座標を扱うといった概念はあまりないように思います。
たくさんの座標を扱うのであれば便利かもしれません。


少数の座標を表現する方法ですが

****************
//double型で座標を表現
double x = 0.5;
double y = 3.1;
****************

のように扱うといいかもしれません。
構造体を知っているのであれば
それで記述するとまとまって見やすいかもしれません。
    • good
    • 1

(質問文を、「可能性として」読むと)



>C言語で二次元の配列a[11][11]を考えたとき、a[1][0]はxy座標の(1,0)を、a[0][5]はxy座標の(0, 5)を表しているという風な考えはあっているのでしょうか?

 たとえば、11 × 11 ピクセルの図を処理、というのであれば・・。

 その座標に、色データを代入するとか・・(「考え」には、ここが欠落?)。
--------------------------------------------------
(質問文を、「そのまま?」読むと)

 int a[11][11]; ここでの 11 は、「個数」です。

 a[1][0] = 9; ここでの 0 や 1 は、配列の先頭からの「位置」(を示すもの)で、9 は「値」です。

 配列は、小数で、配列の先頭からの「位置」を指定できません。

>C言語で、xy座標で( 0.5, 3.1 )などの 小数を表そう としたらどうしたら良いのでしょうか?

 X = 0.5; という「値」ですよね。
 Y = 3.1;

 配列を使うなら、

 #defineXXX0
 #defineYYY1

 double dZahyo[ 200 ][ 2 ];

 dZahyo[ 0 ][ XXX ] = 0.5;
 dZahyo[ 0 ][ YYY ] = 3.1; のような使い方をします。

 No.4 さんが
 
>構造体を知っているのであれば
>それで記述するとまとまって見やすいかもしれません。

 としています(私も推奨)。

  typedef struct{
    double dX;
    double dY;
  }POINT;
  
  POINT sWork[ 200 ];   200「個」の座標確保
  
  sWork[ 199 ].dX = 0.5; 200番目(「位置」)に座標「値」代入
  sWork[ 199 ].dY = 3.1;

  のようになるかと・・。
    • good
    • 0

> また、C言語で、xy座標で(0.5, 3.1)などの小数を表そうとしたらどうしたら良いのでしょうか?



a[0.5][3.1]とは書けませんので、整数になるよう10倍してa[5][31]とするか、発想を変えてn番目の点をx[n]とy[n]の2変数で管理するなどの工夫が必要かと思います。
    • good
    • 1

> a[0][5]はxy座標の(0, 5)を表しているという風な考え


プログラムによります。

> xy座標で(0.5, 3.1)などの小数を表そうとしたら
x座標の値とy座標の値をメンバーとする構造体を定義してみてはいかがでしょうか。
    • good
    • 0

A[α][β]とすれば、α個の箱の一つ一つにβ個の箱がそれぞれ入っている、という考えの方が良いでしょうね。


二次元配列を平面座標のような図にしたければ、小学校で習った掛け算の九九表のイメージを持ってください。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています