//기호상수無 #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'; } p = 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 대입 } | //colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
틀린 부분이 있다면 피드백 주시면 감사하겠습니다.