배열에서 답이 이상합니다.
에드워드
#include stdafx.h
#include stdlib.h
int** sumvect(int** mat1,int** mat2,int nrow,int ncol)
{
int i;
int j;
int** mat;
mat = (int**)malloc(sizeof(int)*nrow);
for(i=0;inrow;i++){
mat[i] = (int*)malloc(sizeof(int)*ncol);
}
for(i=0;inrow;i++)
{
for(j=0;jncol;j++)
{
mat[i][j]=mat1[i][j]+mat2[i][j];
}
}
return mat;
}
int** matrix(int nrow, int ncol)
{
int i;
int** mat;
mat = (int**)malloc(sizeof(int)*nrow);
for(i=0;inrow;i++)
mat[i] = (int*)malloc(sizeof(int)*ncol);
return mat;
}
void main()
{
int nrow, ncol;
int** mat1;
int** mat2;
int** mat3;
int i,j;
printf(A행의 수 : );
scanf_s(%d,&nrow);
printf(A열의 수 : );
scanf_s(%d,&ncol);
mat1 = matrix(nrow,ncol);
for(i=0;inrow;i++)
for(j=0;jncol;j++)
scanf_s(%d,&mat1[i][j]);
for(i=0;inrow;i++)
{
for(j=0;jncol;j++)
printf(%d\t,mat1[i][j]);
printf(\n);
}
printf(B행의 수 : );
scanf_s(%d,&nrow);
printf(B열의 수 : );
scanf_s(%d,&ncol);
mat2 = matrix(nrow,ncol);
for(i=0;inrow;i++)
for(j=0;jncol;j++)
scanf_s(%d,&mat1[i][j]);
for(i=0;inrow;i++)
{
for(j=0;jncol;j++)
printf(%d\t,mat1[i][j]);
printf(\n);
}
mat3=sumvect(mat1,mat2,nrow,ncol);
printf(위 두개 행렬의 합산\n);
for(i=0;inrow;i++)
{
for(j=0;jncol;j++)
printf(%d\t,mat3[i][j]);
printf(\n);
}
free(mat1);
free(mat2);
free(mat3);
}
질문 제목 : 두 행렬의 덧셈이 이상한 값이 나옵니다.질문 요약 :맞는거 같은데 두 행렬의 덧셈이 이상한 값이 나옵니다.질문 내용 : 어떻게 고쳐야할지..