C언어 문제
입력받은 두 문자의 차이 구하기
관련 글
문제)
입력받은 두 문자의 차이를 계산하는 프로그램을 만드시오.
여기서 문자의 차이는 아스키코드값의 차이를 의미합니다.
함수를 정의하고 해당 함수를 호출합니다.
함수 호출 후 차이 값을 반환해주시기 바랍니다.
차이 값은 양수로만 처리하시기 바랍니다.
#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의 결과값이 출력됩니다.
관련 글
'Code.D IT 프로젝트 > C언어' 카테고리의 다른 글
[C언어 문제] 포인터를 이용해서 배열 요소 정렬(feat.swap) (0) | 2017.06.15 |
---|---|
[C언어 문제] 배열을 이용하여 입력받은 데이터 출력하기 (0) | 2017.06.13 |
[C언어 문제] 다이아몬드 출력하기(feat.모래시계) (0) | 2017.06.08 |
[C언어 문제] 아스키코드 출력하는 프로그램 (0) | 2017.06.08 |
[C언어 문제] 홀수의 합과 짝수의 합 구하기 (0) | 2017.06.07 |