아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
빈티지한매사촌80
빈티지한매사촌8021.10.11

C언어 코드 도와주실 수 있으신가요?

#include<stdio.h>

#define CRTSECURENOWARNINGS

int main(void)

{

char n1, n2;

do

{

printf("임의의 문자를 하나만 입력하세요: ");

scanf("%c", &n1);

if (n1 >= 'A' && n1 <= 'Z')

n2 = n1 + 32;

else if (n1 >= 'a' && n1 <= 'z')

continue;

printf("입력하신 문자 '%c'는 영문 대문자 이며 변환하면 '%c'입니다.", n1, n2);

if (n1 == 'Q')

break;

} while (1);

return 0;

}

소문자랑 대문자를 입력했을 때 변환하는 코드를 짜고 싶은데요 조건은 Q를 입력하면 중단되는 것입니다.

그런데 문제가 있습니다.. Q를 입력하면 잘 되는데 Q를 제외한 다른 문자를 입력하면 출력되는 문장이 사진처럼 2번 반복되서 나와요 ㅠㅠ 어떻게 해결해야 하나요? 그리고 n2의 초기값을 설정하라는데 n2 = 0이라고 하면 될까요?

55글자 더 채워주세요.
답변의 개수2개의 답변이 있어요!
  • 아래 처럼 해보세요.

    %c를 받을 때, " %c"로 공백을 하나 줘야합니다.

    #include<stdio.h>

    int main(void)

    {

    char n1, n2;

    do

    {

    printf("임의의 문자를 하나만 입력하세요: ");

    scanf(" %c", &n1);

    if (n1 >= 'A' && n1 <= 'Z')

    n2 = n1 + 32;

    else if (n1 >= 'a' && n1 <= 'z')

    continue;

    printf("입력하신 문자 '%c'는 영문 대문자 이며 변환하면 '%c'입니다.\n", n1, n2);

    if (n1 == 'Q')

    break;

    } while (1);

    return 0;

    }


  • 소스코드 파일 다운로드 : https://github.com/sigmak/exercise4_01/tree/2021-10-13-C-convertTest

    1. 소스코드

    2. 컴파일 후 실행결과 캡쳐