게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C언어 구조체로 직각삼각형 판별하기 ㅠㅠ
게시물ID : computer_49619짧은주소 복사하기
작성자 : 흑흑Ω
추천 : 0
조회수 : 3546회
댓글수 : 4개
등록시간 : 2012/06/11 00:38:55
질문게시판처럼 질문올려서 죄송합니다.... 코드를 짰는데 에러도 없는데 직각삼각형 점을 입력해도 무조건 삼각형이 아니라고 뜨네요....어디가 잘못된걸까요??

#include <stdio.h>
#include <math.h>

struct point {
int x,y;
};

struct triangle {
struct point a, b, c;
};
void bubble_sort(double list[], int n);
int is_right_triangle(struct triangle t);

int main()
{
struct triangle s;


printf("첫번째 점의 x y좌표를 입력 :");
scanf("%d %d", &s.a.x, &s.a.y);
printf("두번째 점의 x y좌표를 입력 :");
scanf("%d %d", &s.b.x, &s.b.y);
printf("세번째 점의 x y좌표를 입력 :");
scanf("%d %d", &s.c.x, &s.c.y);

if(is_right_triangle(s)==1)
{
printf("직각삼각형 입니다.\n");
}
else
printf("직각삼각형이 아닙니다.\n");

return 0;
}

int is_right_triangle(struct triangle t)
{
int xdiff1, xdiff2, xdiff3;
int ydiff1, ydiff2, ydiff3;
double dist1, dist2, dist3;
double list[3];

xdiff1=t.a.x-t.b.x;
xdiff2=t.a.x-t.c.x;
xdiff3=t.b.x-t.c.x;

ydiff1=t.a.y-t.b.y;
ydiff2=t.a.y-t.c.y;
ydiff3=t.b.y-t.c.y;

list[0]=dist1=sqrt(xdiff1*xdiff1+ydiff1*ydiff1);
list[1]=dist2=sqrt(xdiff2*xdiff2+ydiff2*ydiff2);
list[2]=dist3=sqrt(xdiff3*xdiff3+ydiff3*ydiff3);

bubble_sort(list, 3);

if(list[0]*list[0]==list[1]*list[2])
return 1;
else 
return 0;


}

void bubble_sort(double list[], int n)
{
int i, j, temp;

for(i=n-1; i>0;  i--)
for(j=0; j<i; j++)
if(list[j]>list[j+1])
{
temp=list[j];
list[j]=list[j+1];
list[j+1]=temp;
}
}
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호