Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2434] 12번 문제만....
최준호.스페로 [sparrow] 1247 읽음    2003-04-20 20:52
test.gif 12.1KB 리눅스 gcc로 컴파일하고 실행한 결과
안녕하세요 스페로 입니다.

12번문제는 교수님이 예전 C를 생각하고 낸건지.. 도무지 문제의 의도를 모르겟네요

C 언어에서 int 는 4바이트 입니다. 32비트 OS에서 말이죠

예전 OS에서는 2바이트 이기때문에 범위가 -32768 ~ + 32767
이유를 알고 싶다면 2를 16번 곱한값 즉 65535를 + 범위와 -범위로 나눈 거죠

반면 4바이트로 늘어난다면 표현할수 있는 수는 2를 32번 곱한 수입니다.

unsigned라 함은 -범위가 없어지고 모두 +범위로

즉 2바이트 할때 65535까지 표현 할수 잇다는 거죠...

하지만 문제의 소스는 2바이트라 할대 70000을 표현 못하고 계속 무한의 빠진다는걸 보여준거
같은데..

요즘에 어떠한 환경에서도 이프로그램은 제대로 종료됩니다.

dos를 찾아서 실행하기 전에는....

첨부된 그림은 리눅스 에서 gcc로 컴파일하고 실행한 결과 입니다.






12> 다음 프로그램을 실행하여보면 무한히 계속 실행된다. 그 이유를 설명하고 원인을 찾아 바르게 고쳐 보아라.

#include <stdio.h>
#define SIZE 70000
main( )
{
unsigned int index;

for (index = 0; index < SIZE; index++)
printf("index = %u\n", index);





+ -

관련 글 리스트
2433 제발좀 도와주세요 초보문제에요.여러가지 울교수님 너무 깐깐하셔서 틀리면 빠꾸내거든요 부성실하거나요 jjng 1303 2003/04/20
2434     12번 문제만.... 최준호.스페로 1247 2003/04/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.