void getbinarNumber(int c) {
char str[100]; 길이가 얼마가 될지 모르니까 일단 생성해 시벌
int i = 0; // 연산의 횟수를 세서 생성되는 문자열의 길이를 알아낼거여
while (c != 0) {
if (c % 2 == 0) {
str[i] = '0';
} else {
str[i] = '1';
}//2 로 나눠서 나머지가 0 이면 0을 넣고 아니면 1넣어
c = c / 2;
i++;//연산횟수세알려
}
str[i] = '\0'; // 널문자 삽입 삽입하는 위치는 연산횟수는 문자열의 길이보다 1만큼 크니까 그대로 삽입해줘
for (int e = 0; e <= (i -1)/ 2; e++) {
int tmp = str[e];
str[e] = str[i - 1 - e];
str[i - e - 1] = tmp;
}
printf(" %s",str);
}
for (int e = 0; e <= (i -1)/ 2; e++) {
int tmp = str[e];
str[e] = str[i - 1 - e];
str[i - e - 1] = tmp;
}
문자열을 뒤로 돌려버리는 알고리즘이야 잘봐
e <= (i -1)/ 2
이게 제일 중요한 부분이야 반복되는 상수가 문자열의 총길이 에서 -1 한거에 나누기 2 여야해 그리고 중요한게 저 ≤<=
이 코드야 이렇게 할거 아니면 i/2
해주면되 굳이 이렇게하는 이유는 c언어 문자열 마지막에 널문자인 ‘\0’
이게 삽입되기 때문이야 이거아니면
str[i] = '\0';
삽입해서 여기가 문장끝이라고 꼭 알려줘