error C2664:不能将参数 1 从“int (*)[10][10]”转换为“int *” 5
#include<stdio.h>#defineN10structmatrix{intm[N][N];};voidmultiply(int*pA,int*pB,int*p...
#include <stdio.h>
#define N 10
struct matrix
{
int m[N][N];
};
void multiply(int *pA,int *pB,int *pC,int n)
{
struct matrix temp;
int i,j,k;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
temp.m[i][j]=(*pA[j*n+k])*(*pB[k*n+j])+temp.m[i][j];
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
*pC[i*n+j]+=*pC[i*n+j]+temp.m[i][j];
}
}
}
int main()
{
struct matrix A,B,C;
int n=0,i=0,j=0;
/*····*/
multiply(&A.m,&B.m,&C.m,n);
/*·····*/
return 0;
}
省略的是输入和输出,问下 error C2664: “multiply”: 不能将参数 1 从“int (*)[10][10]”转换为“int *”怎么解决呀?应该怎么把A,B,C的指针传递给函数呀? 展开
#define N 10
struct matrix
{
int m[N][N];
};
void multiply(int *pA,int *pB,int *pC,int n)
{
struct matrix temp;
int i,j,k;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
temp.m[i][j]=(*pA[j*n+k])*(*pB[k*n+j])+temp.m[i][j];
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
*pC[i*n+j]+=*pC[i*n+j]+temp.m[i][j];
}
}
}
int main()
{
struct matrix A,B,C;
int n=0,i=0,j=0;
/*····*/
multiply(&A.m,&B.m,&C.m,n);
/*·····*/
return 0;
}
省略的是输入和输出,问下 error C2664: “multiply”: 不能将参数 1 从“int (*)[10][10]”转换为“int *”怎么解决呀?应该怎么把A,B,C的指针传递给函数呀? 展开
展开全部
#include <stdio.h>
#define N 3
typedef struct matrix {
int m[N][N];
}matrix;
matrix multiply(matrix A,matrix B,int n) {
int i,j,k;
matrix C;
for(i = 0; i < n; i++) {
for(j = 0; j < n; j++) {
C.m[i][j] = 0;
for(k = 0; k < n; k++) {
C.m[i][j] += A.m[i][k] * B.m[k][j];
}
}
}
return C;
}
void show(matrix a,int n) {
int i,j;
for(i = 0; i < n; ++i) {
for(j = 0; j < n; ++j)
printf("%4d",a.m[i][j]);
printf("\n");
}
}
int main() {
matrix A = {2,0,3,1,3,2,1,1,2};
matrix B = {0,1,2,0,1,3,2,1,1};
matrix C;
int n = 3;
printf("MATRIX A:\n");
show(A,3);
printf("MATRIX B:\n");
show(B,3);
C = multiply(A,B,n);
printf("MATRIX C:\n");
show(C,3);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询