14025
2014-11-19 20:04:52
1
탭과 줄바꿈 자비 좀(...)
우선 첫번째 for문 봅시다.
for (i = 0; i<MAT_SIZE; i++) {
for (j = 0; j<MAT_SIZE; j++)
Matrix[i][j] = ' ';
}
이거는 일단 이단배열을 전부 ' '이라는 공백으로 집어넣는 초기화 과정입니다.
바꿀 부분이 없습니다.
두번째 for문.
for (i = 0; i<MAT_SIZE; i++) {
for (j = 0; j<MAT_SIZE; j++) {
dis = i - j; //dis에 세로 위치(i) - 가로위치(j)를 넣고
if (dis<MAT_SIZE) // 이 값(dis)이 배열 길이 최대값(MAT_SIZE) 이하면(if (dis<MAT_SIZE))
Matrix[i][j] = '*'; //배열의[i][j]를 *로 바꿔줍니다.(Matrix[i][j] = '*';)
}
}
제가 //로 주석 달은 부분이 '어떻게 *을 찍는가 판단'하는 부분입니다.
i와 j의 위치를 기준으로 어떻게 *로 할 것인가. dis를 구하는 방법과
그 dis가 어떤 값일때 *이 될지 잘 생각해보세요. 이게 이 문제의 핵심입니다
세번째 for문
for (i = 0; i<MAT_SIZE; i++) {
for (j = 0; j<MAT_SIZE; j++)
printf("%c ", Matrix[i][j]);
printf("n");
}
이건 단순히 Matrix에 저장된 char값을 출력해주는 것입니다. 바꿀 게 없어요.
이거 다 가르쳐드리면 실력이 안 늘어드리니 힌트만 드렸어요.