- ベストアンサー
並び替えについて
C言語の初心者です。 +--------------+ +A1|A2|A3|A4|配列A +--------------+ +--------------+ +B1|B2|B3|B4|配列B +--------------+ +--------------------------------+ +A1|B1|A2|B2|A3|B3|A4|B4+ 配列C +--------------------------------+ A[0]→B[0]→A[1]→B[1]という感じで配列Cに配列Aと配列Bのデータを交互に格納したいのですが、どうもうまくいきません。どうしたらよいのかわからないので教えてください。よろしくお願いします。
- because777
- お礼率27% (3/11)
- C・C++・C#
- 回答数4
- ありがとう数4
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>A[0]A[1]→B[0]B[1]→A[2]A[3]→B[2]B[3] こんな感じでできると思います。 for(i=0;i<n;i+=2){ c[2*i]=a[i]; c[2*i+1]=a[i+1]; c[2*i+2]=b[i]; c[2*i+3]=b[i+1]; } # 次からは自分で考えましょう。
その他の回答 (3)
- ymmasayan
- ベストアンサー率30% (2593/8599)
No.1のymmasayanです。 >A[0]A[1]→B[0]B[1]→A[2]A[3]→B[2]B[3] No.3のお答えで完璧ですが、No.1の泥臭いやりかたのおさらいを。 添え字を int i,j で取るとします。配列a,bのデータ数をnとします。 j=0; for(i=0;i<n;i+=2){ c[j]=a[i]; J++; c[j]=a[i+1]; J++; c[j]=b[i]; J++; c[j]=b[i+1]; J++; }
- gimmick
- ベストアンサー率49% (134/270)
次のようにしてできます。配列A、Bの要素数をnとしています。 for(i=0;i<n;i++){ c[2*i]=a[i]; c[2*i+1]=b[i]; }
お礼
ありがとうございました。試してみたところできました。
補足
また質問なんですが、今度はこの配列はchar型で配列Cに A[0]A[1]→B[0]B[1]→A[2]A[3]→B[2]B[3]という風に最終的には A,B配列の要素16ずつのデーターを交互に並び替えたいのですが、こちらはどうやればよいのでしょうか? よろしくお願いします
- ymmasayan
- ベストアンサー率30% (2593/8599)
添え字を int i,j で取るとします。配列a,bのデータ数をnとします。 j=0; for(i=0;i<n;i++){ c[j]=a[i]; J++; c[j]=b[i]; J++; } と言う感じで出来ると思いますが。
お礼
ありがとうございました。 早速試して試してみます。
補足
また質問なんですが、今度はこの配列はchar型で配列Cに A[0]A[1]→B[0]B[1]→A[2]A[3]→B[2]B[3]という風に最終的には A,B配列の要素16ずつのデーターを交互に並び替えたいのですが、こちらはどうやればよいのでしょうか? よろしくお願いします。
関連するQ&A
- 配列の並び替え
下のように5つの配列がA~E列まであって、2、3行目にデータが入っています。このときに、2行目の値が3行目の値より小さい配列で、かつ、2行目の値が小さい順に並べる。その後に、3行目より、2行目の値の方が大きい配列を3行目の値が大きい順に並べるマクロコードを教えてください。 A B C D E←列 1 1 2 3 4 5←配列番号 2 4 9 8 6 2 3 1 5 7 10 3 ↑ 行 ↓ A B C D E 1 5 4 3 2 1 2 2 6 8 9 4 3 3 10 7 5 1
- ベストアンサー
- Visual Basic
- [マクロ]配列を区切り文字で変数に格納する方法
タイトルの通りなのですが、 例えば、 A1~B10にランダムな数字が入っています。 (1)A1~B10を配列Cに格納します。 (2)配列C(1,10)を変数test1に格納します。 ※その時に各配列を/で区切る (3)配列C(2,20)を変数test2に格納します。 ※その時に各配列を/で区切る (4)test1をセルC1に記入 (5)test2をセルC1に記入 のような感じです。 配列に格納する方法はさすがに分かるのですが、区切り文字を入れて変数に格納する方法が分かりません。。。。 ご教授お願いいたします。
- ベストアンサー
- オフィス系ソフト
- 配列のサイズを動的に指定したい。
現在FeliCaを使ったプログラムを作っているのですが、 FeliCaから読み込んだデータを各配列にサイズぴったりで格納したいんですが、読み込むデータによって配列のサイズが違うため、あらかじめ配列のサイズを指定しておくことができません。 例1「012 34567 89] 例2「01 2345678 9」 a[3]=012 a[2]=01 b[5]=34567 b[7]=2345678 c[2]=89 c[1]=9 というように空白で区切った文字列を各配列に格納したいのです。 なにか良い方法はないでしょうか? ソフトはVisualStudio6.0を使用しています。
- ベストアンサー
- C・C++・C#
- 入力された文字列を一文字ずつ配列に格納する方法
例えばABCって文字列が入力されたら配列に data[0]="ABC" と格納するのではなく data[0]="A" data[1]="B" data[2]="C" と格納するにはどう書けばいいのでしょうか?
- 締切済み
- Java
- C言語配列
c言語初心者ですよろしくお願いします。 ファイルから読み込んだ100万件のデータをstaticを使わずに配列に格納したいのですが。 どういった方法があるでしょうか? 私のpcでは変数名[10000]くらいがエラーのでない限界みたいです。
- 締切済み
- その他(学問・教育)
- 数字配列データを画像に変換するプログラム
ある配列にa×bの数字が格納されているとして、それをグラフィカルに表示させるにはどのようなプログラムを書けばいいのでしょうか。 数字データから、サーモカメラの出力画像のようなものを出せないかと思い、画像処理関連の書籍をあさりましたが分かりませんでした。 宜しくお願い致します。 (C言語でお願い致します)
- ベストアンサー
- C・C++・C#
- PHPで配列の検索方法
PHPで下のような2次元配列があったとします。(りんご=a、みかん=bのような意味です。CSVからデータを2次元配列に格納したものです。) $data[0][0]="りんご" , $data[0][1]="a" $data[1][0]="みかん" , $data[1][1]="b" $data[2][0]="ばなな" , $data[2][1]="c" $data[3][0]="ぶどう" , $data[3][1]="d" ここで下のような1次元配列$hogeがあったとき $hoge[0]="ばなな" , $hoge[1]="りんご" 新たに1次元配列$hogehogeを用意して、2次元配列の中から"りんご"や"ばなな"に対応する文字列を探し出して $hogehoge[0]="c" , $hogehoge[1]="a" と、格納したいのですが、やり方がわかりません。 イメージとしまして、 $hoge[0]→($data[0][0]~$data[3][0]の中から探す)→($data[2][0]であるとわかる)→($data[2][0]に対応するのは$data[2][1]だとわかる)→($hogehoge[0]=cと格納) もし分かる方がおられましたらお願いします。
- ベストアンサー
- PHP
- Excelでのデータの並び替え
Excelで以下のようにデータの並び替えを行いたいのですが どのような関数や手順で行えばいいのでしょうか。 A B A B C D 001 a 001 a b 001 b → 002 a b c 002 a → 003 a 002 b → 004 a b 002 c → . 003 a . 004 a . 004 b . . . . . 上記のような感じで、A列の重複を省きB列のデータを1列ごとに表示したいのです。 宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
本当にありがとうございます。 そうですよね、自分で考えないとC言語身につきませんよね。 アドバイスありがとうございます。