c 언어 배열로 장난하는 거 같지만..
글쓴이: xodn158 / 작성시간: 화, 2018/06/05 - 11:07오후
0 0 1 0 0
0 2 3 4 0
5 6 7 8 9
0 10 11 12 0
0 0 13 0 0
이런 식으로 나오게끔 코드를 짜봤습니다. 대부분은 잘 되는데 a[0][0] 부분에서 32이라는 숫자가 뜬금없이 나옵니다. 이게 어떤 동작으로 인해서 32숫자가 나오는 건지 궁금해서 질문 올립니다.(원래는 0이 나와야 정상)
#include <stdio.h>
int main() {
int a[5][5] = {' '},c=1,center = 5/2;
for(int i =0; i<5; i++){
for(int j=0; j<5; j++){
if(i<center){
if(i%2 !=0){
a[i][center-1] = c;
c++;
a[i][center] = c;
c++;
a[i][center+1] = c;
c++;
break;
}
else if (i%2 ==0){
a[i][center] = c;
c++;
break;
}
}
if(i ==center){
a[i][j] = c;
c++;
}
if (i > center){
if(i%2 !=0){
a[i][center-1] = c;
c++;
a[i][center] = c;
c++;
a[i][center+1] = c;
c++;
break;
}
else if (i%2 ==0){
a[i][center] = c;
c++;
break;
}
}
}
}
for(int i=0; i<5; i++){
for(int j =0; j<5; j++){
printf("%d ", a[i][j]);
}printf("\n");
}
}
<code>File attachments:
| 첨부 | 파일 크기 |
|---|---|
| 6.48 KB |
Forums:


처음 int a[][]를 선언할 때 a[0][0]을
처음 int a[][]를 선언할 때 a[0][0]을 32로 초기화하고 있습니다.
해보시면 32가 출력될겁니다.
해결해주셔서 감사합니다 그런데
공백이 아스키코드로 32를 취하는 군요
그런데 첫번째 숫자만 32가 나오는 이유가 뭔가요?
a[0][0] 만 32 로 초기화
a[0][0] 만 32 로 초기화 하셨으니까.
int a[5][5] = {' '}
를
로 바꿔 보셔요.
세벌 https://sebuls.blogspot.kr/
댓글 달기