편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2022.10.24

    (c언어) char 문자 중복 적용오류 질문있습니다.


    중복해서 삼각형의 밑변(base)과 높이(height)를 곱해서 넓이(width)를 산출하고 마지막에 continue?를 넣어서 계속 반복하느냐하는 코딩을 공부하고 있습니다.

    continue다음에 Y나 y를 넣고, 다른 문자를 넣으면 프로그램에서 나가는 것을 구현하려고 했는데요..

        int base, height;
        char con;
        double width;
    
        while (1) {
            printf("Base = ");
            scanf_s("%d", &base);
            printf("Height = ");
            scanf_s("%d", &height);
    
            width = (base * height) / 2;
            printf("Triangle width = %.1lf\n",width);
    
            printf("Continue? ");
            scanf_s(" %c", &con);
            if (con != 'Y' || 'y') break;
        }
    
    • 이렇게 구현하니, 전부 나가기가 되고,
    • 마지막을 if(con != 'y') break; 로 고치니, 실행은 의도한데로 잘 됩니다.

    그런데 제가 하고 싶은 것은 Y와 y를 입력했을때 프로그램을 나가는 것인데 (Y,y) 둘 다 를 넣는 것이 구현이 안되네요. 위에대로 한글자만 구현이 됩니다.

    어떻게 하면 Y와y만 제외하고, 다른 글자를 넣으면 프로그램 나가기를 할 수 있는지 궁금합니다.

  • 프로필 배창일님의 편집
    날짜2022.10.24

    (c언어) char 문자 중복 적용오류 질문있습니다.


    중복해서 삼각형의 밑변(base)과 높이(height)를 곱해서 넓이(width)를 산출하고 마지막에 continue?를 넣어서 계속 반복하느냐하는 코딩을 공부하고 있습니다. continue다음에 Y나 y를 넣고, 다른 문자를 넣으면 프로그램에서 나가는 것을 구현하려고 했는데요..

    int base, height;
    char con;
    double width;
    
    while (1) {
    printf("Base = ");
    scanf_s("%d", &base);
    printf("Height = ");
    scanf_s("%d", &height);
    
    width = (base * height) / 2;
    printf("Triangle width = %.1lf\n",width);
    
    printf("Continue? ");
    scanf_s(" %c", &con);
    if (con != 'Y' || 'y') break;
    }
    

    이렇게 구현하니.. 전부 나가기가 되고, 마지막을 if(con != 'y') break; 로 고치니.. 실행은 의도한데로 잘 됩니다.

    그런데 제가 하고 싶은 것은 Y와y를 입력했을때 프로그램을 나가는 것인데.. 제가 뭘 잘못했는지 몰라도.. 둘 다(Y,y)를 넣는 것이 구현이 안되네요. 위에대로 한글자만 구현이 됩니다.

    어떻게 하면 Y와y만 제외하고, 다른 글자를 넣으면 프로그램 나가기를 할 수 있는지 궁금합니다.