포인터를 배열처럼 이용하려는데 잘 모르겠습니다.
스킬
질문 제목 : 포인터를 이용한 행렬의 크기를 받아 출력하는 함수질문 요약 :행렬의 크기를 입력받아 upper diagonal은 1로, lower diagonal은 -1로 대각선은 0으로 채우는 프로그램을 작성하시오
즉, 3x3행렬이면
0 1 1
-1 0 1
-1 -1 0
이렇게 출력되어야 합니다만 잘 안되네요..
뭐가 문제인지 모르겠습니다.질문 내용 :
코드 :
#include stdio.h
#include stdlib.h
int main(void)
{
int i, j;
int a = 0, b = 0;
double **x;
printf(enter the size of matrix\n);
scanf(%d %d, &a, &b);
x = (double**) malloc(a*sizeof(double));
for(i = 0 ; i a ; i++)
{
x[i] = (double*)malloc*)malloc(b*sizeof(double));
}
printf(the size of matrix : %dx%d \n\n, a, b);
// 행렬에 0,-1, 1 입력
for (i=0; ia; i++)
{
for (j=0; jb; j++)
{
if (i == j)
x[i][j] = 0;
else if (i j)
x[i][j] = 1;
else if (i j)
x[i][j] = -1;
}
}
// 행렬 출력
for (i=0; ia; i++)
{
for (j=0; jb; j++)
{
printf(%d , x[i][j]);
}
printf(\n);
}
return 0;
}실행시키면
입력한 크기대로 행렬은 만들어지지만
행렬 출력이
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
000000처럼 전부 0으로 출력 되네요..
어디를 고쳐야 할까요??