느낀점 및 설명 ¶
보면 알 수 있지만, 연산부분을 나눌 수 있는데도 불구하고 나누지 않았다.
이유는 속도때문.. (알고리즘따위 버려버리고 단지 오버헤드를 줄임으로써 속도를 높이려는 대마왕의 수작..;;ㅁ;;)
그나저다 이 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");
}










