본문 바로가기

Programming/VC++

[C] 좌표값 구하기

 출처 : 네이버 지식인(http://kin.naver.com/db/detail.php?dir_id=10104&docid=563921)

Visual C++ 6.0으로 작성했습니다.


#include<stdio.h>
int main(void)
{
        int sx,sy,ex,ey,d,i,temp;
        float a, b, f;

        printf("첫번째 좌표를 입력하세요(예: 10 6) = > ");
        scanf("%d %d",&sx,&sy);

        printf("두번째 좌표를 입력하세요(예: 10 6) = > ");
        scanf("%d %d",&ex,&ey);

        if(sx>ex){
                temp=sx;
                sx=ex;
                ex=temp;
                temp=sy;
                sy=ey;
                ey=temp;
        }

        a=(float)(sy-ey) / (float)(sx-ex);
        b=(float)sy-a*(float)sx;

        printf("%g %g\n",a,b);

        for(i=sx+1;i<ex;i++){
                f=(float)i*a+b;
                d=(int)f;
                if(f==d) printf("(%d, %d)\n",i,d);
        }
}

추가 설명

sx, sy는 시작 점 좌표 변수.

ex, ey는 끝 점 좌표 변수


for문이 증가하므로

시작점 x가 끝점 x보다 클경우

서로 점을 교환함


1차원 함수 y = ax + b의 식을 이용해서

a와 b를 구한뒤

반복문을 이용하여

x를 정수로 한단계식 이동하면서

y의 값이 정수인지 판단

정수의 값이면 출력함


문제에 대한 이해가 확실히 되지 못했지만

이런 식일것이라 생각합니다.

if와 for를 이용해서 만들어보았습니다.

'Programming > VC++' 카테고리의 다른 글

[VC++] VISUAL ASSIST X 레지스트리 수정  (0) 2007.08.01
[C] sqrt를 사용한 거리 구하기  (0) 2007.07.31
[C] math.h의 pow함수  (0) 2007.07.31
[C] sqrt() 쓰는 법  (0) 2007.07.31
[API] 리소스 추가하기...인가?  (0) 2007.07.31