C언어 원화 출력 - ceon-eo wonhwa chullyeog

/* 두개의 숫자의 합을 계산하는 프로그램 */
#include<stdio.h>

int main(void)
{
 int x;  // 첫번째 정수를 저장할 변수
 int y;  // 두번째 정수를 저장할 변수
 int sum; // 두 정수의 합을 저장하는 변수

 x = 100;
 y = 200;

 sum = x + y;
 printf("두수의 합: %d", sum);

 return 0;
}

C언어 원화 출력 - ceon-eo wonhwa chullyeog


#include<stdio.h>

int main(void)
{
 int x;        // 첫번째 정수를 저장할 변수
 int y;        // 두번째 정수를 저장할 변수
 int sum;       // 두 정수의 합을 저장하는 변수

 printf("첫번째 숫자를 입력하시오:"); // 입력 안내 메시지 출력
 scanf("%d", &x);     // 하나의 정수를 받아서 x에 저장

 printf("두번째 숫자를 입력하시오:"); // 입력 안내 메시지 출력
 scanf("%d", &y);     // 하나의 정수를 받아서 y에 저장
 sum = x + y;      // 변수 2개를 더한다.
 printf("두수의 합: %d", sum);   // sum의 값을 10진수 형태로 출력

 return 0;       // 0을 외부로 반환
}


#include<stdio.h>

int main(void)
{
 int salary;  // 월급
 int deposit; // 저축액

 printf("월급을 입력하시오: ");
 scanf("%d", &salary);

 deposit = 10 * 12 * salary;

 printf("10년 동안의 저축액: %d\n", deposit);

 return 0;
}


#include<stdio.h>

int main(void)
{
 float radius; // 원의 반지름
 float area;  // 면적

 printf("반지름을 입력하시오: ");
 scanf("%f", &radius);

 area = 3.14*radius*radius;

 printf("원의 면적: %f\n", area);

 return 0;
}


#include<stdio.h>

int main(void)
{
 float rate; // 원/달러 환율
 float usd; // 달러화
 int krw; // 원화

 printf("달러에 대한 원화 환율을 입력하시오: ");  // 입력 안내 메시지
 scanf("%f", &rate);        // 사용자로부터 환율 입력

 printf("원화 금액을 입력하시오: ");     // 입력 안내 메시지
 scanf("%d", &krw);        // 원화 금액 입력

 usd = krw / rate;        // 달러화로 환산

 printf("원화 %d원은 %f달러 입니다.\n", krw, usd); // 계산 결과 출력

 return 0;          // 함수 결과값 반환
}

#include<stdio.h>

int main(void)
{
 double w, h, area, perimeter;

  printf("가로를 입력하세요: ");
 scanf("%lf", &w);

 printf("세로를 입력하세요: ");
 scanf("%lf", &h);

 area = w*h;
 perimeter = 2 * (w + h);

 printf("사각형의 넓이: %lf\n사각형의 둘레: %lf\n", area, perimeter);
 return 0;
}

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

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

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