안녕하세요.. c로 행렬 동적할당하구 곱셈하는 공부를 하는데요 ㅠㅠ 도와주시와요
제가..
int** Mkmatrix(int rows, int cols)
{
int** temp;
int i;
temp=(int**)malloc(rows*sizeof(int*));
for(i=0;i
temp[i]=(int*)malloc(cols*sizeof(int));
}
return temp;
}
이걸로 동적 할당 하구요
void inputmatrix(int** x,int row, int col)
{
int i,j;
for(i=0;i
{printf("row %d \n",i+1);
for(j=0;j
{
printf("col%d : ",j+1);
scanf("%d ",&x[i][j]);
}
}
}
이렇게 입력받구요
for(i=0;i
for(j=0;j
{
k=0;
while(k!=col)
{ result[i][j]=result[i][j]+mat1[i][k]*mat2[k][j];
k++;}
}}
이렇게 곱했는데요....
무슨 증상이 나타나면요
먼저 입력을 할때...
첫번째 값을 입력하고 엔터쳤는데 두번째꺼 입력하라는 문장이 나오질 않어요..
그래서 아무값이나 치면은 그담부턴 또 잘 돌아갑니다....헐
n*n행렬은 잘되는데요 둘이 숫자가 달라지면 ... 예를들면 2*3 과 3*2를 곱한다든지요.
그러면 두번째 행렬 입력할때 3행이 시작되면 프로그램 오류가 뜹니다..
도데체 뭐가 문제일까요 고민고민해도 모르겠네요 고수님들..
본문 첨부해 놓겠습니다!
첨부 | 파일 크기 |
---|---|
![]() | 592바이트 |
저라면 귀찮은 2차원 어레이보다 1차원 어레이를
저라면 귀찮은 2차원 어레이보다 1차원 어레이를 만들고 함수 `int& access(int* Matrix, int& x, int& y)` 식으로 해서 할것 같네요.
그런데 C공부를 전혀 안 해서 저게 맞는 코드인지는 모르겠습니다.
댓글 달기