Call by Value 에서 Reference로 변경하는법...
MinA
질문 제목 : 구조체배열 call by reference변경하는법
지금 제가 call by value로 했는데 call by reference로 변경해야하는데 오류가 발생하네요;
아직 초보라 문법을 제대로 변경 못한것 같은데 어느부분이 잘못됬는지 좀 알려주세요..
질문 내용 :
정상작동하는 코드
-----------------
// 3번문제
#includestdio.h
#includestdlib.h
#includetime.h
#includemath.h
struct point
{
int x;
int y;
char dummy[100];
}a[10000000],b;
void pointrandom(struct point *a);
void distance(struct point [], struct point);
void main()
{
clock_t start,finish;
srand((unsigned)time(null));
printf(잠시만 기다려주세요...\n);
pointrandom(a);
printf(좌표를 입력하세요(단, 0 = x = 10000 , 0 = y = 10000):\n);
scanf(%d %d,&b.x,&b.y);
start = clock();
distance(a,b);
finish = clock();
printf(검색시간 : %f초\n,(double)(finish-start)/clk_tck);
}
void pointrandom(struct point *a)
{
int i;
for(i=0;i10000000;i++)
{
a[i].x=rand()%10001;
a[i].y=rand()%10001;
}
}
void distance(struct point a[], struct point b)
{
int i;
double distance;
for(i=0;i10000000;i++)
{
distance=sqrt((a[i].x-b.x)*(a[i].x-b.x)+(a[i].y-b.y)*(a[i].y-b.y));
if(distance100)
printf(좌표=(%5d, %5d) / 거리=%g\n,a[i].x, a[i].y,distance);
}
}
수정중인 코드
-----------
// 3번문제
#includestdio.h
#includestdlib.h
#includetime.h
#includemath.h
struct point
{
int x;
int y;
char dummy[100];
}a[10000000],b;
void pointrandom(struct point *a);
void distance(struct point *[], struct point *);
void main()
{
clock_t start,finish;
srand((unsigned)time(null));
printf(잠시만 기다려주세요...\n);
pointrandom(a);
printf(좌표를 입력하세요(단, 0 = x = 10000 , 0 = y = 10000):\n);
scanf(%d %d,&b.x,&b.y);
start = clock();
distance(a,b);
finish = clock();
printf(검색시간 : %f초\n,(double)(finish-start)/clk_tck);
}
void pointrandom(struct point *a)
{
int i;
for(i=0;i10000000;i++)
{
a[i].x=rand()%10001;
a[i].y=rand()%10001;
}
}
void distance(struct point *a[], struct point *b)
{
int i;
double distance;
for(i=0;i10000000;i++)
{
distance=sqrt((a[i]-x-b-x)*(a[i]-x-b-x)+(a[i]-y-b-y)*(a[i]-y-b-y));
if(distance100)
printf(좌표=(%5d, %5d) / 거리=%g\n,a[i]-x, a[i]-y,distance);
}
}