構造体の配列である構造体変数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;
}