• 締切済み

Javaで教えていただけける方お願いします

int型2次元配列 a行b列をb行a列の2次元配列に変換するプログラムを 作りたいのですが、うまく変換した表示が出来ません。 123  ⇒ 14 456    25        36 できるかたお願いします。

  • Java
  • 回答数1
  • ありがとう数1

みんなの回答

  • ESE_SE
  • ベストアンサー率34% (157/458)
回答No.1

いつもVB使いで、Javaでどういう関数になっているのか分からないのでそこは調べてください。 int i,j; int tmpi,tmpj; int hoge[i][j];//元配列 //hogeが別途与えられi,jが不明の時はここでhoge[i][j]の各次元の最大数を取得 //VBで言うところのUBound int gebo[j][i];//生成配列。元配列と合わせ、1次・2次の数字を入れ換えて宣言 //ループして値を取得 for(tmpi=0;tmpi<i;tmpi++){ for(tmpj=0;tmpj<j;tmpj++){ gebo[tmpj][tmpi]=hoge[tmpi][tmpj]; } } とこれくらいで良いんではないかと? 考え方はコメントの通りです。 もしかしたらテーブルのピボットを行うような関数も出来ているかも知れませんが。 私も最近、VBで「split」なる関数があることを初めて知って度肝を抜かれました。 カンマ区切りの文字列を関数に通すだけで配列にするとかもう・・・。

210130
質問者

お礼

ありがとうございます。 考え方がみえてきました。

関連するQ&A

  • C言語です。

    C言語です。 2次元配列を用いて、2つの2行3列の行列 A=[ 1 2 3 4 5 6 ] B=[ 6 3 4 5 1 2 ] の和を表示するプログラムを教えてください。 コンパイル結果 7 5 7 9 6 8

  • 多次元配列の行列

    1番 キーボードから3×3の行列の要素を2次元配列に入力した後、その値を表示するプログラムをさくせいせよ 2番 キーボードから3×4の行列の要素を2次元配列に入力した後、転置行列を出力するプログラムをさくせいせよ 3番 2つの行列A(3×3行列)、B(3×3行列)の買う要素の値をキーボードから2つの配列に入力し、2つの行列、並びに、それらの和、差、積の行列を出力するプログラムを作成せよ(Bに単位行列を入れて検算せよ) 4番 2行3列の行列と3行2列の積を求めるプログラムを作成せよ どなたかわからないでしょうか?? 数が多くてすみません。 わかる方お願いします!!

  • 行列式のプログラム

    適当な形式にて初期化された2つの2次元配列により、3×4行列Aと4×3行列Bの要素を表現し、積ABを求めて表示させるプログラムなんです。 ここまでならなんとかなるかもと思ったんですが、行列はAはプログラム中で以下の数値で初期化して、行列Bの要素はキーボードから入力させるようにしないといけないんです。。   2.0 3.0 4.0 5.0 A= 3.0 4.0 5.0 6.0   1.0 2.0 3.0 4.0 なんですけれども、教えていただけたらうれしいです。。 お願いします!!

  • 多次元配列への数値の代入。

    こんにちは。 今、多次元配列への数値の代入の仕方で、悩んでいます。 A[][] = new int[n][n]; B[][] = new int[n][n]; 上記のようなn行n列の配列を宣言し、nを入力します。 例えば、n=100と入力すると、100行100列の配列を定義したことになり、Aの配列には1~10000、Bの配列には10001~20000の数値を代入、200×200であれば1~40000、40001~80000…という感じにしたいのですが、いいアイディアが浮かびません。 また、1~nの間でランダムに数値を選び、その数値を代入というのも考えましたが、Javaで乱数を代入できるのかな?という疑問が出来てしまい、わからなくなってしまいました。 何かいい考えがありましたら、ぜひ教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 二次元配列で"一列"取り出すには?

    すいませんC# を勉強中なのですが、 たとえば int[,] a = new int[2,2] {            {1,2},            {3,4}         } という2x2の二次元配列があったとき 縦の列、つまり1と3だけ抜き取って配列に格納したい、または2と4だけを抜き取って配列に格納するにはどうすればいいでしょうか? 実際には配列に抜き取った後に hairetsu.Max(); でその列の最大値を出したいと考えています。 たくさん量があるとき、どうすれば簡単に列の配列を抜きとれるのでしょうか、ご存じの方よろしくお願いします…

  • C言語の2次元配列における行・列指定

    C言語初心者ですがよろしくお願いします。 C言語では、例えばint型の3行4列の2次元配列を表現するときに、 int array[3][4]; とするようですが、 必ず1つ目の[ ]で行番号を、2つ目の[ ]で列番号を表さなければならないものなのでしょうか。 もし慣習的にそうしているものなら、 行と列を指定する[ ]を入れ替えてプログラムを作成しても問題ないのでしょうか? というのも、メモリ上の割り当てが、 array[0][0] array[0][1] array[0][2] array[0][3] array[1][0] array[1][1] array[1][2] ... ... ... array[2][2] array[2][3] のようになるなら、 その配列をfwrite関数でバイナリデータに書きこんで、再度、列方向に読み込みたい時に、 あらかじめ書きこむ前のデータをarray[列][行]の形で扱っていった方が便利ではないかと思ったのですが、なにか初歩的な勘違いしてたりしますでしょうか? ご教授お願いします。

  • Javaのコピープログラムについて

    int1次元配列hoge{0,1,2,3,4,5,6,7,8,9,10}を奇数と偶数にわけて、それぞれを順にコピーする。 プログラムを作りたいのですが、奇数と偶数に分けるまではわかるのですがそれをコピーするのがわからないためご教授お願いします。

  • 2次元配列の動的確保&配列の添え字の書式について

    (1)2次元配列の動的確保について 1次元配列の動的確保は理解できたのですが、次のプログラムの 文(ⅰ)~(ⅱ)の意味を理解できていないので教えてください。 int **a, j, k, nrows=3, ncolumns=4 ; a = (int **)malloc(nrows * sizeof(int *)); a[0] = (int *)malloc(nrows * ncolumns * sizeof(int)); …(ⅰ) //先頭アドレスに… for(j = 1; j < nrows; j++) a[j] = a[0] + j * ncolumns; …(ⅱ)   //この行が特にわかりません。 (2)配列の添え字について この書き方はどういう意味になりますか? out[X_SIZE * (i) + (j)] 分かる方、回答お願いします。

  • 多次元配列について

    int[]a = {1,2,3} int[]a = new int[3];//は普通の配列 int[]a = {{1,2,3},{4,5,6}}; int[][]a = new int[3][3]は //2次元配列 int[]a = {{1,2,3}{4,5,6}{7,8,9}};int[][][] = new int[3][3][3]; //は3次元配列 int[][][][]a = new int[3][3][3][3]; //は4次元配列になると思いますがこっちの方はコンパイルエラーが出ないのに int[][][][]a = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; //はコンパイルエラーが出ます どうしてですか?

  • ポインタと二次元配列

    二次元配列a[ ][ ]の第1行の要素以後を0にするプログラムで動きます。 疑問なんですが、4行目のa[ ][4]は、なぜ[ ]のように空欄になっているんでしょうか。 また、8行目のpa=a[1];は、なぜpa=a[0];ではだめなんでしょうか。第1行は先頭行で0行目を意味しているのではないでしょうか。 #include <stdio.h> void main(void) /*ポインタと二次元配列*/ { static int a[ ][4]={{1,2,3,0}, {4,5,6,0}, {7,8,9,-999}}; int j,k,*pa; pa=a[1]; while(*pa!=-999){ *pa=0; pa++; } for(j=0;j<3;j++){ for(k=0;k<4;k++) printf("%5d",a[j][k]); printf("\n"); } }

専門家に質問してみよう