0

構造体の配列である構造体変数arr[]を使用して、以下の構造体stを宣言しました。配列arr[]の最初の10個の場所の「num」変数に値1を割り当て、「val」変数に値1〜10を割り当てようとしています。そして、次の10の場所の値2から'num'および値1から10から'val'。しかし、コードをトレースすると、同じ配列位置のそれぞれのnumとvalに値が割り当てられません。4番目の構造にnum=1とval=4を割り当てたい場合は、3番目の構造のvalにnum = 1を割り当て、4番目の構造のnumにval=4を割り当てます。

私の質問は配列インデックスに関するものではありません。

問題は:

私がステートメントを書いた場合

arr [2] .num = 1; arr [2] .val = 2;

({num、val})

期待される結果は次のとおりです。arr[2]={1,2}

ただし、実際の結果は次のとおりです。arr [1] = {num、1} arr [2] = {2、val}

#include<iostream.h>
#include<conio.h>


class abc
{

 public:

 struct st
 {
  int num;
  int val;
 };

 st arr[21];

 void funct();

};

void abc::funct()
{
 int i,j,k=1;

 for(i=1;i<=2;i++)
 {
  for(j=1;j<=10;j++)
  {
   arr[k].num=i;
   arr[k].val=j;
   k++;
  }
 }

}


int main()
{
 abc z;

 z.funct();

 return 0;
}
4

2 に答える 2

0

1) 配列は 0 ベースです。つまり、インデックスは 0 から始まり、arraySize - 1 (宣言から) までです。 2 )コードを見て 、
各行が何をしているか見てみ ましょ
う... num = 1 を最初の10 個の要素に、2 を2 番目の 10 個の要素に設定したかった(ここに簡単な数学的ルールが表示されますか?) val = arrayElementIndex (これは単純すぎます)




コードを見て、それをどのように行う必要があるかを考えてください。

于 2012-08-18T13:41:31.237 に答える
-1

http://www.cplusplus.com/doc/tutorial/arrays/

名前の付いた配列の最初の要素にアクセスする場合は、によってアクセスしarrますarr[0]

したがって、これを行うとおそらく役立つでしょう:

int i、j、k = 0;

于 2012-08-18T13:32:15.113 に答える