C언어 환율 계산 프로그램 - ceon-eo hwan-yul gyesan peulogeulaem

//기호상수無 #include <stdio.h> int main(void) { int krw; int usd; printf("환율을 입력하시오 : "); scanf("%d",&krw); printf("달러화 금액을 입력하시오 : "); scanf("%d",&usd); int total = krw*usd; printf("달러화 %d달러는 %d원입니다.\n",usd,total); return 0; }

//기호상수有 #include <stdio.h> #define exchangeRate 1200 //환율을 표시 int main(void) { int krw; int usd; printf("달러화 금액을 입력하시오 : "); scanf("%d",&usd); krw = exchangeRate*usd; printf("달러화 %d달러는 %d원입니다.\n",usd,krw); return 0; }

//기호상수無 환율을 입력하시오 : 1200 달러화 금액을 입력하시오 : 1000 달러화 1000달러는 1200000원입니다.

//기호상수有 달러화 금액을 입력하시오 : 1000 달러화 1000달러는 1200000원입니다.

환율을 입력해 달러를 원으로, 원을 달러로 계산해 출력해주는 프로그램이다.

3번째 자리마다 ','를 넣어서 결과 값을 보기 쉽게 출력해주는 기능을 넣었다.

1. 정수형 숫자를 문자열로 바꿀 때  

2. 정수형 숫자를 거꾸로 출력할 때

3. ','를 출력해야 했을 때

구글링을 통해 다른 사람의 코드를 분석하며 공부해봤다.

스스로 창의적인 코드를 만들어 프로그램을 짜는 것은 쉬운 일이 아닌 것 같다..

창의성은 여러 가지 지식이 뭉쳐서 시너지를 내는 것이기 때문에 나보다 실력이 좋은 분들의 코드를 분석하는 것도 좋은 방법이라고 생각했다. 그렇게 내 것이 쌓인다면 나도 언젠간 창의적인 코드를 짜서 효율적인 프로그램을 만들 수 있을 거라 믿는다.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

#include <stdio.h>

void MakeStringComa(int result_value,char *result_str); // 결과 값을 문자열로 바꿔 ','를 출력가능하게 해주는 함수

int main(void)

{

int exchange_rate,dollar,won,way;  //환율, 달러, 원, 서비스 방법 변수 선언

int result_value; // 결과 값을 담을 변수 선언

char result_str[20]; // 결과 값을 문자열로 바꿔서 담을 변수

do

{

printf("========================================================================\n");

printf("현재 달러에 대한 원화 환율을 입력해주세요(소수점 불가능) >> ");

scanf("%d",&exchange_rate);

while (1)

{

printf("========================================================================\n");

printf("원하시는 서비스를 선택해주세요\n");

printf("1. 달러 => 원\n");

printf("2. 원 => 달러\n");

printf("========================================================================\n");

scanf("%d",&way);

printf("%d번 서비스를 선택하셨습니다.\n",way);

if (way == 1//way가 1일 때 달러를 원으로 바꾸는 기능

{

printf("========================================================================\n");

printf("바꿀 달러를 입력해주세요 >> ");

scanf("%d",&dollar);

result_value = dollar * exchange_rate;  //달러와 환율을 곱해 원을 구하는 코드

MakeStringComa(result_value,result_str); //결과 값에 콤마를 넣어주는 함수 ex) 1,000,000

printf("결과값 : %s원 입니다.\n",result_str); //결과 값(문자열) 출력 후 탈출

break;

}

else if (way == 2//way가 2일 때 원을 달러로 바꾸는 기능

{

printf("========================================================================\n");

printf("바꿀 원화를 입력해주세요 >> ");

scanf("%d",&won);

result_value = won / exchange_rate; //환율로 원을 나누어 달러를 구하는 문장

MakeStringComa(result_value,result_str); //결과 값에 콤마를 넣어주는 함수 ex) 1,000,000

printf("결과값 : %s$ 입니다.\n",result_str); //결과 값(문자열) 출력 후 탈출

break;

}

else //1,2 외에 다른 숫자를 입력했을 경우 

{

printf("<Error!!>> 다시 입력해주세요.\n");

continue;

}

}

printf("========================================================================\n");

printf("프로그램을 다시 사용하고 싶으시다면 아무 숫자나 눌러주세요.(Enter an integer)\n");

printf("프로그램을 종료하고 싶으시다면 아무 문자나 눌러주세요.(q to quit)\n");

printf("========================================================================\n");

while (scanf("%d",&way)==1); // 문자를 입력한다면 %d이기 때문에 scanf가 입력받을 값이 아님. 그래서 0반환 후 종료

// 숫자를 입력한다면 1반환 후 계속 실행

return 0;

}

void MakeStringComa(int result_value,char *result_str)

{

char str[20],*p; // 결과 값을 담기위해 포인터와 배열 선언

if (result_value < 0//결과 값이 음수일 경우 

{

result_value *= -1;

*result_str++ = '-';

}

if (result_value == 0//결과 값이 0일 경우

{

*result_str++ = '0';

*result_str++ = '\0';

}

= str;

for (int i = 0; result_value > 0; i++//결과 값을 거꾸로 str을 가리키는 *p에 대입해주면서 ',' 까지 대입

{

if (i && (i % 3== 0//3번째 자리마다 ',' 를 넣어줌

*p++ = ',';

*p++ = (result_value % 10+ '0'//결과 값을 거꾸로 만들어주는 코드

result_value /= 10;               // ""

}

p--//for구문을 탈출할 때 p주소값이 증가했으므로 다시 감소시켜줌

while (p >= str) 

{

*result_str++ = *p--;

}

*result_str = '\0'//마지막에 null character 대입

}

http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

틀린 부분이 있다면 피드백 주시면 감사하겠습니다.