ページ 11

配列に入ってる数値を使ってfor文を回したい。

Posted: 2016年7月08日(金) 12:27
by dokugaku
C言語についての質問です。
このサイトを使わせて頂くのは初めてなので、至らない点がありましたら言って下さい。改善します。

例えば、
Posとゆう配列には、1~30までの配列に座標が入ってる。
その中から、欲しいデータが入ってる配列の番号を、別の配列dataに3,5,16,17,20,30とゆう風に保存したとします。
そのdata配列の中の数値を使って、for文を回すことは出来ますか?
この場合
普通は1づつ増えたりしたり、2づつだったりするのを、
最初はPosの3番目の場所を操作出来るように、次は、Posの5番目の場所を、Posの16番目の場所を、とゆう感じに操作したいと思っているのですが、もし、出来るのであれば、どんなふうに記述すれば良いのかを教えて下さい。

Re: 配列に入ってる数値を使ってfor文を回したい。

Posted: 2016年7月08日(金) 13:33
by usao
こんな感じですか.

コード:

int data[6] = { 3,5,16,17,20,30 };
int Pos[31] = { ... };

int idata;
int iPos;

for( idata=0; idata<6; ++idata )
{
  iPos = data[ idata ];
  DoSomething( Pos[ iPos ] );
}
オフトピック
>ゆう
>づつ

わざわざ変な書き方する必要あります?

Re: 配列に入ってる数値を使ってfor文を回したい。

Posted: 2016年7月12日(火) 11:14
by dokugaku
こんなに早く回答を頂けるなんて、思ってもいなかったので、全然見てませんでした。すみませんでした。

DoSomethingとは何でしょうか?教えて頂けませんか?


「ゆう」は小さい頃に国語の先生に厳しく叱られて(暫くたってから、その先生が間違いだったと気づきました。)から、それが身についてしまって、無意識にやってしまうんです。
「づつ」に関しては、「正しいか」、「間違いか」で言うと、どちらも正解なのです。その解釈は沢山ありますので、自分は、「づつ」にしています。「づつ」で決めてる会社もあれば、その反対もあるんです。

Re: 配列に入ってる数値を使ってfor文を回したい。

Posted: 2016年7月12日(火) 13:20
by usao
>DoSomethingとは何でしょうか?

「何らかの処理を行う関数」程度の意味合いで仮に書いただけです.

「【配列要素を所望の順序で巡る】という問題が,例示コードのような方法で解決できるのであれば,
 あとはここらへんにあなたの実際にやりたい処理を適切に書けばいいのではないか」
という程度の意味で捉えてください.

Re: 配列に入ってる数値を使ってfor文を回したい。

Posted: 2016年7月13日(水) 09:58
by dokugaku
やりたい事が、無事に出来ました。

丁寧な回答をして頂いて、ありがとうございます。