• 締切済み

配列の要素番号を取得するには?

悩んでいることがあり、皆さんのお力を貸しください。 double[31]という配列を作り、各要素にある条件で値が格納されます。その後、この値の中から最大値を求める式を書き、最大値を求めます。ここまではなんとかできるのですが、この最大値を得た時の要素番号も表示したいのです。 求められた値から、要素番号を求める事はできるのでしょうか? わかる方にはなんてことないと思いますが、初心者のため悩みまくっています。どうかお力を貸してください。お願いします。

みんなの回答

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

>求められた値から、要素番号を求める事はできるのでしょうか? 値が唯一なら、もう一度検索すれば求められます。でも、普通はそんな面倒なことはしません。 配列番号を覚える変数ixを用意して、最大値を求めているループ中の最大値比較のif文のところで最大値を覚えると同時に最大値の配列番号をix変数に覚えさせます。

q_goo
質問者

お礼

ありがとうございます。解決できそうです。

全文を見る
すると、全ての回答が全文表示されます。
  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>この値の中から最大値を求める式を書き、最大値を求めます この時ついでに要素番号も取っとけば良いのでは? 最大値を求める関数を書いているなら、要素番号を戻り値にして、最大値はその要素番号で配列に再度アクセスすれば良いでしょう。

q_goo
質問者

お礼

ありがとうございます。是非参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 一致する要素が格納されている添え字番号を返す

    例えばある配列内に @moji = (ak, df, gc); などという値でも文字でもが格納されていたとして、 $x = "ak"; といったある変数に格納されている値・文字(この場合はak)と一致する要素が配列@mojiに格納されていた場合に、その格納されている要素の添え字番号(配列の添え字番号)を返すような関数はないでしょうか? イメージとして $res = mch($x); とすると、0が返されて$resに格納されるというものです。 ちなみにRという言語では > a <- c("ljj", "B0", "op199") # 変数aに3つの文字列要素を代入する > res <- which(a == "op199") # which()は引数に指定された論理に一致する要素番号を返す > res # aについて,a == "op199"がTRUEとなるのは要素番号3であるから,3を返す [1] 3 というものがあるのですが、これと同じような関数が欲しいのです(泣)

    • ベストアンサー
    • Perl
  • 配列にある重複要素を削除したい(VBA)

    エクセルVBAにて、あるルールで対象となるセルの値を配列に格納しております。 配列の要素には重複しているものもあるため、重複要素を配列から削除したいのですが その方法が分かりません。 どなたか、よろしくご教授下さい。

  • 配列をセッションに割り当てた後で

    javaBeanでDBにアクセスして、取得した値を配列に格納します。その配列をサーブレット側でgetメソッド使って取得し、セッションに割り当てます。その後、JSP側でセッションを通して配列の各要素を取り出し表示させたいのですが<%= session.getAttribute("Date") %>←(Dateが配列)では配列の各要素ではなく配列そのものが取り出されるのか、 [Ljava.lang.String;@737371 のような文字が表示されてしまいます。 セッションで割り当てられた配列の各要素の値の取得のやり方がわかる方どうかご教授お願いします。

    • ベストアンサー
    • Java
  • Eclipse による Java プログラミングの配列について質問です

    Eclipse による Java プログラミングの配列について質問です。 下の二つの問題に対して、それぞれのソースコードを教えてください。よろしくお願いします。 1. int型配列aの要素の中で,正の値だけを順に配列bの要素に 代入して,その結果を表示するプログラムを作成しなさい. ※配列aの要素と配列bの要素をそれぞれ表示すること. (実行例) 配列a={5 -1 3 4 -2 7} 配列b={5 3 4 7} 2. int型配列dataの要素の中で,最大値と何番目の配列の要素が 最大値か表示するプログラムを作成しなさい. ※配列dataの要素も表示すること. (実行例) 配列data={31 41 59 26 53 58 37 97 93 23 84} 最大値は97です 最大値は7番目の配列の要素です

    • ベストアンサー
    • Java
  • 可変長配列の中にInteger型の可変長配列を登録

    可変長配列の中にInteger型の可変長配列を登録するやり方を教えてください。 また、その可変長配列の中にある可変長配列の中の例えば3つ目の要素にアクセスして、 格納されている値を取り出す方法を教えてください。 よろしくお願いします。

  • 配列の要素数を増やすには?[C++]

    中央値を探すプログラムで困っています。中央値の算出の仕方自体はわかるのですが 途中で配列の値を増やさないといけないのでてこずっています。 int main( ) { Median m; double d[5]= {3,4,5,10,12}; m.addValue( 1 ); m.addValue( 2 ); m.addArray( d, 5 ); cout << “Median = “ << m.computeMedian( ) << endl; m.clear( ); } このプログラムを実行したら Median = 4 とでるようにしないといけないんですが、 addValue()とaddArray()をどう書けばいいのかわかりません。 m.addValue(1)と(2)で1と2を配列の中に足してそこから中央値を算出し ないといけないんですが要素数を後から増やすことはできるんでしょうか?  ちなみにヘッダーは下の通りで、privateの部分は自由に変えても結構です。 お手数ですが力をお貸しください。 public: Median( ); void addValue( double d ); void addArray( double d[], int size ); void clear(); double computeMedian( ) const; private: double my_Values[ MAXSIZE ]; int number;

  • 配列の簡易な記載法ついて

    JavaScript初心者です。 20の要素を持つ配列があるとします。 そのうちの複数個に同一の値を入れるには下記のような冗長な書き方以外にどのようなものがあるのでしょうか? 例: 配列arrayの1,5,9,13,17番目にabcという値を格納する (※値を入れて宣言する以外の方法で) array[0] = array[4] = array[8] = array[12] = array[16] = "abc";   検索の仕方が悪いのか簡易な書き方が見つからなかったので、教えていただけると助かります!  

  • C# 配列の配列(多次元配列?)

    C#において、配列の配列中に格納した値を、検索することを 行いたいのですが、格納した値そのものを見ることができません。 まだ、C#を始めて間もないので、配列に格納する時点で、 不備があるかも知れませんが、お願いします。 やりたいこと ・テキストファイル内にある値を、2次元配列または、多次元配列に格納 ・配列に格納した値で、データチェックなどを行う予定  テキストファイル内のデータは、下記内容となり要素数も固定ではなく変動する   A=1,2,3・・・   B=11,22,33・・・ 実際のソースは、 //配列 ArrayList list = new ArrayList(); //配列格納 1レコード毎用 ArrayList listtmp = new ArrayList(); while ((strGenderTextLine = objReader.ReadLine()) != null) {  string strBuffer;  //「=」前の値格納用変数  string[] strBuffer2; //「=」後の値格納用配列  listtmp=null;  //strtmpに「=」前の値を格納  strtmp = TextLine.Split('=').GetValue(0).ToString();  //strtmp2に「=」後の値を格納(配列)  strtmp2 = TextLine.Split('=').GetValue(1).ToString().Split(',');  for (int i = 0; i <= strtmp2.Length - 1; i ++)  {   //[i,0]に、「=」前の値を代入   if (i == 0)   {   listtmp.Add(strtmp);   }   else   {   listtmp.Add(strtmp2[i].ToString());   }  }  //list配列にlistTmp配列を格納(配列の配列)  list.Add(listtmp);  intT = intT + strtmp2.Length;  //行数カウント  intTLine = intTLine + 1;  } ここから、配列「list」内に入っている値を閲覧することができる方法を教えていただければと思います。 宜しくお願いいたします。

  • perl 配列の要素数について

    配列の要素数について質問させていただきます。 プログラムの中で、以下のようにファイルの内容を1行ずつ読み込み、配列に入れています。  open (IN, "ファイル名");  @data = <IN>;  close (IN); こういった形で配列に入れていった場合、入れられる最大行数(=最大要素数)はどれくらいになるのでしょうか。 現在100万行のテキストファイルは、問題なく読み込めているようでした。 ご存知の方がおられましたら、ご回答いただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • C♯の配列について

    C♯でプログラムを作っているのですが、配列の要素数の最大値と最小値の求め方がわかりません。配列の値の最大値の求め方は調べれば出てくるのですが、要素数の最大値等は調べてもわかりませんでした。 例えば下記のような配列があった場合 int[,,] a =new int[100,100,100] a[2,3,6]=1 a[4,5,9]=1 a[13,46,79]=1 a[8,15,45]=1 a[1,33,68]=1 それぞれの要素数の最小値1、3、6、最大値13、46、79は どのようにプログラムで求めればいいのでしょうか? よろしくお願いします。