error C2109: subscript requires array or pointer type

mwbmwb 2006-10-08 10:08:29
#include<iostream.h>
#include<iomanip.h>
void getarray(int *A,int *B,int *C);
void main()
{
int i,j,n;
int array_1[4][3]={{2,3,4},{5,6,7},{8,9,10},{11,12,13}};
int array_2[3][2]={3,4,5,6,7,8};
int array_3[4][2]={0};
getarray(array_1[0],array_2[0],array_3[0]);
for( i=0;i<4;i++)
{
for( j=0;j<3;j++)
{
cout<<setw(3)<<array_1[i][j];
}
cout<<endl;
}
for(n=0;n<3;n++)
{
for(j=0;j<2;j++)
{
cout<<setw(3)<<array_2[n][j];
}
cout<<endl;
}
for(i=0;i<4;i++)
{
for(j=0;j<2;j++)
{
cout<<setw(4)<<array_3[i][j];
}
}


}
void getarray(int *A,int *B,int *C)
{
int i,j,n;
for(i=0;i<4;i++)
{
for( n=0;n<2;n++)
{
for(j=0;j<3;j++)
{
C[i][n]+=A[i][j]*B[j][n];

}

}
}
}

写的一个习题,却不能编译通过 提示


F:\C++\quesson.cpp(46) : error C2109: subscript requires array or pointer type
F:\C++\quesson.cpp(46) : error C2109: subscript requires array or pointer type
F:\C++\quesson.cpp(46) : error C2109: subscript requires array or pointer type
F:\C++\quesson.cpp(46) : error C2106: '+=' : left operand must be l-value
这是怎么回事,应怎样解决?这个问题困扰我一个小时了!
...全文
366 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
www_16c_cn 2006-10-09
  • 打赏
  • 举报
回复
修改一下参数说明吧

void getarray(int (*A)[3],int (*B)[2],int (*C)[2])
{
int i,j,n;
for(i=0;i<4;i++)
{
for( n=0;n<2;n++)
{
for(j=0;j<3;j++)
{
C[i][n]+=A[i][j]*B[j][n];

}

}
}
}
fflush 2006-10-09
  • 打赏
  • 举报
回复
A, B, C都是int *类型,你认为可以这么写吗
C[i][n]+=A[i][j]*B[j][n];??

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧