무한 루프 char()로 탈출

조회수 819회
//여기에 코드를 입력하세요
#include <stdio.h>
#include <math.h>

double dist(a, b, c, d) {
    double result;
    result = sqrt((double)(a - c)*(a - c) + (double)(b - d)*(b - d));
    return result;
}

int main(void) {
    char ent;
    int a, b, c, d;
    double distance;

    printf("첫번째 점을 좌표를 입력하시오:");
    scanf("%d %d", &a, &b);
    printf("두번째 점의 좌표를 입력하시오:");
    scanf("%d %d", &c, &d);
    distance = dist(a, b, c, d);
    printf("두 점 사이의 거리는 %.6lf입니다.", distance);}

이렇게 짜봤는데 ....이 상태에서 "다시 수행하겠습니다 ? "를 출력하고 y를 누르면 다시 수행하고 n을 누르면 프로그램을 종료하려그러는데 , 어떻게 하면 될까요 ? 저는 while (1) 반복문과 break,continue 을 써서 구현 해보려했는데 자꾸 오류가 뜨네요...

  • 질문을 여러번 올렸고, 도움도 받으셨잖아요. 그럼 최소한 질문의 코드를 제대로 올리는 방법은 배웁시다. nowp 2019.4.16 14:16
  • 질문글 수정했습니다 ! 저렇게 올려야 하는 지 이제야 알았네요..ㅠ 알려주셔서 감사해요 언짢으셨다면 죄송해요 알 수 없는 사용자 2019.4.16 19:22

1 답변

  • #include <stdio.h>
    #include <math.h>
    
    double dist(a, b, c, d) {
            double result;
            result = sqrt((double)(a - c)*(a - c) + (double)(b - d)*(b - d));
            return result;
    }
    
    int main(void) {
            char ent, yesno;
            int a, b, c, d;
            double distance; 
    
            do {
                    printf("첫번째 점을 좌표를 입력하시오:");
                    scanf("%d %d", &a, &b);
                    printf("두번째 점의 좌표를 입력하시오:");
                    scanf("%d %d", &c, &d);
                    distance = dist(a, b, c, d);
                    printf("두 점 사이의 거리는 %.6lf입니다.\n", distance);
                    printf("다시 수행하겠습니다 ? %c", getc(stdin)); 
            } while(getc(stdin) == 'y');
    }
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)