C언어 도와주세요...ㅠㅠ....
차오름
질문 제목 : 실행시간이 0초로 뜹니다.ㅠㅠ프로그램의 목적은 n을 n번 더한 값을 출력하고,실행 시간을 계산해주는 프로그램입니다.
그래서 저는 n을 define으로 정의하여 n을 임의로 10으로 넣어서 10을 10번 더하는 프로그램을 계산하고
그에 걸린 실행시간을 구하고 싶었습니다. 그런데 이상하게 실행시간이 아무리 큰 값, 작은 값을 넣어봐도 실행시간이 0초로 뜹니다.
오류나 경고는 없었습니다.ㅠㅠ 도와주시면 정말 감사드릴게요!
질문 내용 : #includestdio.h
#includestdlib.h
#includetime.h
#define n 10
int main (void)
{
int sum=0,i;
clock_t start,finish;
double duration;
start= clock();
//양의 정수 n을 n번 더하는 문제
for(i=1;i=n;i++)
{
sum=sum+n;
}
printf(%d입니다.\n,sum);
finish= clock();
duration =(double)(finish - start) /clocks_per_sec;
printf(그리고 이 프로그램의 실행시간은 %f초입니다.\n,duration);return 0;
}
-
공주
최적화 본능이라?? 왠지 생명체같은 느낌이네요 ㅋㅋ
-
하린
우아아 바꿔서 실행시키니까 잘 되네요!
도움주셔서 정말 감사해요// -
도담
저 루프는 컴파일러의 최적화 본능을 자극하기 딱 좋은 코드이기 때문에..
컴파일러는 알아서 루프를 제거하고 컴파일 타임에 계산한 상수를 박아버리기 때문에 그럴것 같네요.
일단 Debug Configuration의 경우 디폴트로 최적화 옵션이 꺼져 있으므로 루프를 제대로 돌릴겁니다.
Release Configuation이 문제(?)인데, 이건 프로젝트 옵션에 가서 최적화 옵션을 꺼야 합니다.
VC2005 한글판기준으로 상단의 프로젝트 메뉴의 속성에 가