質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

3回答

753閲覧

変数の違う配列の代入

退会済みユーザー

退会済みユーザー

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2017/02/07 05:41

編集2017/02/07 06:01

2次元の高速逆フーリエ変換のプログラムを作成しています
512×512のデータを計算しています
i=512,j=512,n=512を代入します
その中で配列の数値を丸ごと別の配列に代入したい部分がありますが、うまく数値を代入することが出来ません
このプログラムで行いたいことは最終的に
xx[i][j]=x[ib]
yy[i][j]=y[ib];
の計算です
変数が違うものの代入方法が思いつかずに困っています
x[0],x[1],x[2],...,x[n-1]をそれぞれxx[i][0],xx[i][1],xx[i][2]・・・xx[i][n-1]に代入したいですyも同様に考えています

###発生している問題・エラーメッセージ
xx[i][j]=x[j];
yy[i][j]=y[j];
の出力される値がすべて同じ値が出てくる
エラーメッセージ
出力される値がすべて同じ値が出てくる

###該当のソースコード
c言語
for(ib=0;ib<n;ib++){
for(j=0;j<=n-1;j++){
x[j]=x[ib];
y[j]=y[ib];
}
}
for(j=0;j<=n-1;j++){
xx[i][j]=x[j];
yy[i][j]=y[j];
}
}

###試したこと
変数が違うものの代入なのでx[j],y[j]を使用してみました

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2017/02/07 05:46

x[0],x[1],x[2],...,x[n-1]はそれぞれxxのどのインデックスに代入されてほしいんですか?
退会済みユーザー

退会済みユーザー

2017/02/07 05:49

x[0],x[1],x[2],...,x[n-1]をそれぞれ  xx[i][0],xx[i][1],xx[i][2]・・・xx[i][n-1]に代入したいですyも同様に考えています
ozwk

2017/02/07 05:55 編集

さも当然のように出てきた i について説明してください。外部から与えられる値ですか? i=0,1.,2,..,n-1全てに対してですか?
退会済みユーザー

退会済みユーザー

2017/02/07 05:54

すいません情報不足でした512×512の配列のデータの計算を行おうとしていて、i=512,j=512です 
can110

2017/02/07 06:12

x[0~3]=1~4、y[0~3]=5~8のときのxx[0][0]~[3][3],yy[0][0]~[3][3]の値を示してください。
退会済みユーザー

退会済みユーザー

2017/02/07 06:23

xx[0][0]=1,xx[0][1]=1,xx[0][2]=1,xx[0][3]=1,xx[1][0]=2,xx[1][1]=2,xx[1][2]=2,xx[1][3]=2,xx[2][0]=3,xx[2][1]=3,xx[2][2]=3,xx[2][3]=3,xx[3][0]=4,xx[3][1]=4,xx[3][2]=4,xx[3][3]=4,のような数値が代入されるプログラムを検討しています
guest

回答3

0

ベストアンサー

多分こういうことがしたいと思うんですが、

C

1xx[0][0] = x[0] 2xx[0][1] = x[1] 3... 4xx[0][n-1] = x[n-1] 5xx[1][0] = x[0] 6xx[1][1] = x[1] 7... 8xx[1][n-1] = x[n-1] 9... 10xx[n-1][0] = x[0] 11xx[n-1][1] = x[1] 12... 13xx[n-1][n-1] = x[n-1]

だとすれば、「変数が違う」とかだいぶ混乱しているようですが

C

1xx[i][j] = x[j]

という関係です。
(別にi,jじゃなくてもいいんです。k,lでもa,bでもhoge,piyoでも。そこら辺を多分勘違いしています。)

というわけで

C

1for(int i=0;i<n;i++) 2 for(int j=0;j<n;j++) 3 xx[i][j] = x[j];

どうやら、例えば、

C

1int ar[n]; 2for(int i=0; i<n; i++) 3 ar[i] = なんとかかんとか

と書いたら、以降、ar[]のインデックスにiしか使えないと思いこんでいるようですが、
そんなことないです。

投稿2017/02/07 06:26

編集2017/02/07 07:13
ozwk

総合スコア13528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/02/07 06:51

それではx[ib]をわざわざx[j]に書き換えなくても for(int i=0;i<n;i++) for(int j=0;j<n;j++) xx[i][j] = x[j]; で xx[0][0] = x[0] xx[0][1] = x[1] ... xx[0][n-1] = x[n-1] xx[1][0] = x[0] xx[1][1] = x[1] ... xx[1][n-1] = x[n-1] ... xx[n-1][0] = x[0] xx[n-1][1] = x[1] ... xx[n-1][n-1] = x[n-1] これらのような代入が出来るという認識で大丈夫でしょうか? つまり変数の文字は何でもよく x[ib]を=の式で書き換えなくてもx[a]やx[piyo]のように使っても問題はないのでしょうか?
ozwk

2017/02/07 06:57

はい。なぜなら今回の場合、 xx[..][ここと] = x[ここ]の値が同じであってほしいだけですよね? じゃあ別にインデックスに使う変数名なんて(他に影響出さなければ)なんでもいいわけですよね?
退会済みユーザー

退会済みユーザー

2017/02/07 07:05

はい xx[..][ここと] = x[ここ]の値が同じであれば問題ないです
guest

0

こんにちは。

質問全体の意味が掴めませんが、判った部分について回答します。

x[0],x[1],x[2],...,x[n-1]をそれぞれxx[i][0],xx[i][1],xx[i][2]・・・xx[i][n-1]に代入したいです

これは下記です。

C

1for (int j=0; j < n; ++j) 2{ 3 xx[i][j]=x[j]; 4}

恐らくお尋ねになりたい部分はここではないような気もしますが、まずととっかかりのために回答してみました。この回答で不足な部分について質問の補足をお願いします。

なお、下記処理は、最初のibが0の時にx[0]を全てのxjへ書き込んでますので、全て最初のx[0]で埋められてしまいます。取り敢えず、この処理は外した方が良いように思います。

C

1for(ib=0;ib<n;ib++) 2{ 3 for(j=0;j<=n-1;j++) 4 { 5 x[j]=x[ib]; 6 y[j]=y[ib]; 7 } 8}

投稿2017/02/07 06:29

編集2017/02/07 06:31
Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/02/07 06:52

値がすべて同じものが出力される理由がわかりました ありがとうございます
guest

0

配列同士の関係から素直に組むと、以下のようになります。

C

1for( i = 0; i < n; i++){ 2 for( j = 0; j < n; j++){ 3 xx[i][j] = x[j]; 4 yy[i][j] = y[j]; 5 } 6}

投稿2017/02/07 06:29

can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/02/07 06:53

もとはx[ib]の部分をx[j]と書いても計算はできるのでしょうか? 
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問