게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[c언어 질문] scanf를 무시하는 현상?
게시물ID : programmer_12108짧은주소 복사하기
작성자 : 여우이슬비
추천 : 0
조회수 : 7515회
댓글수 : 3개
등록시간 : 2015/07/14 23:27:57
옵션
  • 본인삭제금지
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<stdio.h>
#pragma warning(disable:4996)//scanf 보안 경고 무시
int main()                    // 삼각형의 넓이 구하기
{
    int a, b;                //두 변의 길이 받기 위해
    char c;                    //y값을 받기 위해
    printf("밑변의 길이 = ");
    scanf("%d", &a);
    printf("높이 = ");
    scanf("%d", &b);
    printf("삼각형의 넓이는 %.1lf입니다.\n계속하시겠습니까?", (double)(a + b) / 2);
    while (1)                //문제가 반복문이라 사용
    {
        scanf("%c", &c);
        switch (c)            // y나 Y를 받으면 다시, 아니면 루프 탈출
        {
        case'Y':
        case'y':
            printf("밑변의 길이 = ");
            scanf("%d", &a);
            printf("높이 = ");
            scanf("%d", &b);
            printf("삼각형의 넓이는 %.1lf입니다.\n계속하시겠습니까?", (double)(a + b) / 2);
            break;
        default:
            break;
        }
        break;
    }
    return 0;
}
cs

문제가 "삼각형 넓이 구하고 계속하시겠습니까를 출력해 Y나 y를 입력 받으면 반복, 다른걸 입력 받으면 종료"였습니다.
그래서 저런 식으로 했는데 while문 내의 첫 scanf(y,Y 인지 판별하는 곳)를 무시하고 바로 default값으로 가버립니다;;

while문 위의 printf("밑변의 길이~~~에서 while(1) 앞까지 지우고 실행하면 while문 내의 첫 scanf를 잘 인식합니다.
대체 왜 이런 문제가 발생하는건가요? 그리고 해결 방법은 없을까요?
출처 정올 기본문제
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호