본문 바로가기

Code.D IT 프로젝트/C언어

[C언어 문제] 입력받은 두 문자의 차이 구하기

C언어 문제

입력받은 두 문자의 차이 구하기



관련 글

[c언어 강좌] 함수(function)



문제)

입력받은 두 문자의 차이를 계산하는 프로그램을 만드시오.

여기서 문자의 차이는 아스키코드값의 차이를 의미합니다.

함수를 정의하고 해당 함수를 호출합니다.

함수 호출 차이 값을 반환해주시기 바랍니다.

차이 값은 양수로만 처리하시기 바랍니다.



#include<stdio.h>

//정의한 함수 선언
char ASCII(char a, char b);

int main(void){

     char a, b;
     printf("문자 하나를 입력해주세요 >>> ");
     fflush(stdout);
     scanf("%c", &a);

     printf("문자를 하나 더 입력해주세요 >>> ");
     fflush(stdout);
     fflush(stdin);
     scanf("%c", &b);

     //ASCII 함수 호출
     printf("두 문자의 차이는 %d입니다. \n", ASCII(a, b));

     return 0;

}

//함수 정의
char ASCII(char a, char b){

     if(a >= b)
         return a - b;

     else
         return b - a;

     return 0;

}



다음은 출력 결과입니다.






입력받은 두 개의 값(char a, char b)의 차이를 반환하는 함수를 만듭니다.

문제에서 차이 값은 양수로만 처리하라는 조건이 있습니다.

따라서 입력받은 a가 b보다 큰 경우 a-b

b가 큰 경우 b-a의 결과값을 나타내는 함수를 정의합니다.

메인 함수 위에 문자형(char)으로 정의한 함수 ASCII를 선언합니다.

메인 함수에서 문자 a, b를 입력받은 뒤, ASCII 함수를 호출하여 차이 값을 반환합니다.



위의 결과를 보면, 대문자 A를 입력한 뒤 소문자 a를 입력하였습니다.

대문자 A의 ASCII 코드값은 65,

소문자 a의 ASCII 코드값은 97입니다.

-32의 출력값이 예상되지만, ASCII 함수를 양수로만 출력될 수 있게 정의하였으므로 양수인 32의 결과값이 출력됩니다.



관련 글

[C언어] printf 함수 숫자 출력, 아스키 코드(ASCII Code)