배열에 변수를 받어서 크기 조정
철죽
질문 제목 : 배열에 변수를 받어서 크기 조정
변수를 받어서 배열크기 조정질문 내용 :
배열을 생성하려는 데 상수만 받더라구여
정수변수를 scanf로 입력 받어서 2차원 배열을 생성하려는데 방법이 떠오르지 않네요.
어떻게 코드를 수정해야죠?
m하고 n을 cm,cn으로 다 바꾸고 싶은데 방법이 안 떠올라요.
#include stdio.h
#include stdlib.h
#include time.h
#define randomize() srand((unsigned)time(null))
typedef enum { false, true } bool;
#define m 19
#define n 40
/*int** board(int rows, int cols)
{
int **x,i;
malloc(x,rows * sizeof(*x));;
for (i=0; irows; i++)
malloc(x[i], cols * sizeof(**x));
return x;
} */ ---막히는 부분
int imove[8] = { -1, 0, 1, 1, 1, 0, -1, -1 };
int jmove[8] = { 1, 1, 1, 0, -1, -1, -1, 0 };
int cn, cm =0;
printf(n의 크기\n);
scanf(%d,&cn);
printf(m의 크기\n);
scanf(%d,&cm);
int board[cm,cn]={0}; --------cm하고 cn은 변수라 에러가 뜨네요. m,n만 받어요.
int count = 0;
int ibug, jbug, i_temp, j_temp;
int i, j, k;
printf(시작 i 좌표 x point(1 ~ %d) : , cn-2 );
scanf(%d, &ibug);
printf(시작 j 좌표 y point(1 ~ %d) : , cm-2 );
scanf(%d, &jbug);
board[--ibug][--jbug] = 1;
randomize();
while ( count = 50000 )
{
if ( check() )
break;
k = rand()%8;
i_temp = ibug + imove[k];
j_temp = jbug + jmove[k];
if ( ( i_temp = 0 && i_temp m ) && (j_temp = 0 && j_temp n ) )
{
ibug = i_temp;
jbug = j_temp;
count++;
board[ibug][jbug]++;
}
}
for ( i = 0 ; i m ; i++ )
{
for ( j = 0 ; j n ; j++ )
{
printf(%4d, board[i][j] );
}
printf(\n);
}
printf (count = %d\n, count);
system(pause);
return 0;
}