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/
댓글 달기