일단 시작하는 IT개발 블로그
  • yard, inch > cm 변환 프로그램 소스 코드
    2022년 03월 06일 18시 16분 56초에 업로드 된 글입니다.
    작성자: sooooong_minseok
    #include <stdio.h>
    #include <stdlib.h>
    
    double yard_to_cm_converter(void);
    double inch_to_cm_converter(void);
    int main(void)
    {
    	int answer = 0;
    	printf("yard, inch > cm 변환기.\n\n");
    	printf("입력을 원하는 값을 써 주세요.(1 : yard > cm , 2 : inch > yard) : ");
    	scanf_s("%d", &answer);
    	if (answer == 1)
    	{
    		double ret = 0;
    		ret = yard_to_cm_converter();
    		printf("%.1lfcm\n", ret);
    		exit(0);
    	}
    	if (answer == 2)
    	{
    		double ret = 0;
    		ret = inch_to_cm_converter();
    		printf("%.1lf\n", ret);
    		exit(0);
    
    	}
    	else
    	{
    		printf("1,2 이외의 숫자를 입력 시 강제 종료됩니다.");
    		exit(0);
    	}
    	
    	return 0;
    }
    double yard_to_cm_converter(void)
    {
    	double yard = 0;
    	printf("yard를 입력하세요(cm 변환) : ");
    	scanf_s("%lf", &yard);
    	return yard * 91.44;
    }
    double inch_to_cm_converter(void)
    {
    	double cm = 0;
    	printf("inch를 입력하세요(cm 변환) : ");
    	scanf_s("%lf", &cm);
    	return cm * 2.54;
    }

    함수를 두개 만들었다.

    1번 함수는 yard to cm converter

    2번 함수는 inch to cm converter 이다.

    두 함수는 1또는 2입력으로 선택하여 yart to cm, inch to cm 를 선택할 수 있게 짜봤다.

     

    하면서 부딪친 점은 scanf함수의 활용법이다.

    처음 코드를 짤 때는 answer에 대한 scanf 함수를 사용하고

    if문 안에 숫자를 입력하고 그 입력한 값을 함수로 전달하고 반환값을 받는 형식으로 코드를 짰다.

    이 경우 scanf함수가 if문 안에 또 만들어서인지는 모르겠지만 여러 오류들이 발생했다.

     

    그래서 함수에 전달값을 없애고 함수에 직접 입력값을 저장하고 반환값을 보냈다.

    그 결과 정상적으로 코드가 만들어졌다.

     

    또한 <stdlib.h>헤더 파일과 exit()를 이용하여 프로그램 결과물이 모두 출력되면 완전히 프로그램을 종료시키도록 했다.

     

     

    scanf로 발생하는 오류들은 다양하며 예기치 못한 경우가 많은 것 같다.

    물론 아직 프로그램 코드를 짜본 경험이 적어서 일 수도 있지만 특히 scanf를 활용하여 코드를 짤 때는 주의 기울일 필요가 있어보인다.

     

    정리.1 scanf 함수 주의

    정리.2 <stdlib.h> 와 exit()

     

    댓글