:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
08/10/08 17:10
1.
#include <stdio.h> int main(void) unsigned long n; scanf("%d",&n); printf("%c", ((n>>4)&0xF)["0123456789ABCDEF"]); printf("%c\n", ((n)&0xF)["0123456789ABCDEF"]); n>>=8; printf("%c", ((n>>4)&0xF)["0123456789ABCDEF"]); printf("%c\n", ((n)&0xF)["0123456789ABCDEF"]); n>>=8; printf("%c", ((n>>4)&0xF)["0123456789ABCDEF"]); printf("%c\n", ((n)&0xF)["0123456789ABCDEF"]); n>>=8; printf("%c", ((n>>4)&0xF)["0123456789ABCDEF"]); printf("%c\n", ((n)&0xF)["0123456789ABCDEF"]); n>>=8; return 0; 비트연산 놀이입니다. -_; 2. floating point 부정확성때문에 어떻게 짜는게 좋을지 잘 모르겠네요. string으로 입력받고 처리할 수 있지만 흠 글쎄요. 입력 조건이 좀 더 명확했으면 좋겠는데요. 3. #include <ctype.h> #include <stdio.h> int main(void) char str[1000]; int i,a=0,b=0,c=0,d=0; gets(str); for(i=0;str[i];i++)b+=isupper(str[i]),c+=islower(str[i]),d+=isdigit(str[i]); a=b+c+d; printf("%d^%d^%d^%d",a,b,c,d); return 0; 한가지 부탁드리자면, 혹시 숙제였던거면, 절대로 그냥 복사해서 내지는 마세요~ 코딩을 해봤기때문에 다 올리는거지만 그냥 힌트만 적어드릴걸 그랬네요. 컴파일은 해보지 않았기 때문에 혹시 버그 있으면 알려주세요.
08/10/08 17:47
와후-만세님//
질문이 있는데여. 첫번째 코드의 경우의 경우 "0123456789ABCDEF"가 힙에 한번만 할당 되는건가요? 아님 8번 모두 할당 되게 되나요?
08/10/08 17:51
컴파일러마다 다르지만
약간의 최적화라도 되어있다면 한번만 할당하는 것으로 알고 있습니다. 기본적으로 VC 6.0에서도 디버그모드로 컴파일 하더라도 한 번만 할당합니다.
|