C언어 if(word==apple) 에서 식별자 apple이 정의되어 있지 않다는 메세지가 발생

조회수 660회
//1번 코드
int num1;
printf("숫자입력");
scanf("%d",&num1);
if(num1==1)
{
  printf("입력한 숫자는1입니다.");
}
return 0;
//2번 코드
char word;
printf("문자입력");
scanf("%c",&word);
if(word==apple)//여기에서 식별자 apple이 정의되어 있지 않다는 메세지가 발생합니다.
{
  printf("입력한 문자는 사과입니다.");
}
return 0;

1번 코드는 정상적으로 실행되는데 2번 코드는 안되는 이유가 뭔지 정확하게 알고싶습니다. 컴퓨터가 데이터처리를 2진법으로 한다는 것 까지는 알겠는데 그거랑 관련이있는건가요? 혼자서는 도저히 답이 안나와 질문드립니다.

  • 1. char는 문자 1개만 받을 수 있습니다. dbwodlf3 2021.9.24 03:44
  • 2. apple 은 선언되지 않은 변수입니다. "apple" 이 맞습니다. dbwodlf3 2021.9.24 03:44
  • cogi님 답변감사합니다. 알 수 없는 사용자 2021.9.24 10:38

1 답변

  • 2번 코드가 에러가 나는 이유는 apple이 무엇인지 선언되어 있지 않아서 그렇습니다.

    1번 코드에선 num1을 숫자 1과 비교하는데, 숫자 1은 코드에서도 그냥 숫자 1입니다. 그래서 1을 따로 선언해 줄 필요가 없습니다.

    그런데 2번 코드에선 word를 apple과 비교하고 있는데, 지금 질문에서 보여준 코드에서는 apple의 선언이 없네요. 옮겨 적다가 누락된 것일수도 있을거 같습니다만, 에러가 나는 이유는 apple의 선언이 없기 때문입니다.

    만약 2번 코드 최상단에 char apple='a';라는 줄이 있었고, 사용자가 a를 입력했다면 printf("입력한 문자는 사과입니다.");문구가 출력될겁니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)