느낀점 및 설명 ¶
보면 알 수 있지만, 연산부분을 나눌 수 있는데도 불구하고 나누지 않았다.
이유는 속도때문.. (알고리즘따위 버려버리고 단지 오버헤드를 줄임으로써 속도를 높이려는 대마왕의 수작..;;ㅁ;;)
그나저다 이 cpu_clocks라는거.. 너무 안정확하잖아!!!!
입력을 받는 부분을 포함시켜 버리면.. 늦게 입력하면 걸린시간이 많은걸로 나오고, 빨리 입력하면 걸린시간이 짧은걸로 나온다.
그래서 일단 그부분을 제외하긴 했는데..(입력부를 위에두어서 계산에 제외한게 현재소스).. 그러니까 0초.. 대략 할말 없음..
킁..;;ㅁ;;
이유는 속도때문.. (알고리즘따위 버려버리고 단지 오버헤드를 줄임으로써 속도를 높이려는 대마왕의 수작..;;ㅁ;;)
그나저다 이 cpu_clocks라는거.. 너무 안정확하잖아!!!!
입력을 받는 부분을 포함시켜 버리면.. 늦게 입력하면 걸린시간이 많은걸로 나오고, 빨리 입력하면 걸린시간이 짧은걸로 나온다.
그래서 일단 그부분을 제외하긴 했는데..(입력부를 위에두어서 계산에 제외한게 현재소스).. 그러니까 0초.. 대략 할말 없음..
킁..;;ㅁ;;
소스 ¶
~cpp // CPU_CLOCKS 구하는 법. #include <time.h> #include <stdio.h> #include <iostream> const int BAE_YOL_SU=2; int size_x[BAE_YOL_SU]; int size_y[BAE_YOL_SU]; int *baeyol[BAE_YOL_SU]; void input_data(); int main() { input_data();// 기본 변수들 int time_in; // 초기 시작 시간. time_in = clock(); // 초기 시작 시간을 입력한다. if (size_x[0]!=size_x[1] || size_y[0]!=size_y[1]) printf("불가능\n"); else { for (register int i=0; i<size_y[0]; ++i) { for (register int j=0; j<size_x[1]; ++j) { printf("%d ",*(baeyol[0]+i*size_x[0]+j)+*(baeyol[1]+i*size_x[1]+j)); } printf("\n"); } } if (size_x[0]!=size_y[1]) printf("불가능\n"); else { for (register int i=0; i<size_y[0]; ++i) { for (register int j=0; j<size_x[1]; ++j) { int temp=0; for (register int k=0; k<size_x[0]; ++k) temp+=(*(baeyol[0]+i*size_x[0]+k))*(*(baeyol[1]+k*size_x[1]+j)); printf("%d ",temp); } printf("\n"); } } for (register int i=0; i<BAE_YOL_SU; ++i) free(baeyol[i]); printf("CPU CLOCKS = %d\n", clock() - time_in); // 끝났을때 시간 - 초기 시작시간 = 프로그램 실행 시간 return 0; // 프로그램 종료. } void input_data() { for (register int i=0; i<BAE_YOL_SU; ++i) { printf("배열의 세로길이를 입력해주세요.>>"); scanf("%d",&size_y[i]); printf("배열의 가로길이를 입력해주세요.>>"); scanf("%d",&size_x[i]); printf("\n"); baeyol[i]=(int*)malloc(sizeof(int)*size_x[i]*size_y[i]); for (register int j=0; j<size_y[i]; ++j) { for (register int k=0; k<size_x[i]; ++k) { printf("%d행 %d열의 숫자를 입력해주세요.>>",j+1,k+1); scanf("%d",baeyol[i]+j*size_x[i]+k); } printf("\n"); } } printf("\n"); }