입력은 문자열로 사칙연산에 한합니다. 즉, ()를 포함 *, /, +. -와 숫자 0~9, 소수점을 한 줄로 입력하면
그 결과값을 계산해서 알려주는 프로그램입니다.
예) 입력값 : 15*3+2*5 (3-.5)/7
이 문자열을 숫자로 바꾸고 연산 우선순위를 적용하여 결과를 나타내주는 프로그램입니다.
문자열의 최대길이는 120글자로 한정합니다.
입력값은 float내에서 충분히 처리되는 것으로 간주합니다.
다음검색
댓글
댓글 리스트-
작성자김봉한 작성시간 12.05.03 예전에 그러니까 자바로 위와 같은 프로그램을 짠적이 있었어여. 잘하시는 분은 뚝딱 하시겠지만 초보자 분들은 조금 시간이 걸릴듯~ 특히나 괄호 부분과 우선순위 때문에 시간이 많이 걸리는 부분이구여^^
팁 간단하게 적습니다.
혹시 함수중에 일반 문장을을 수식으로 바꿔주는 함수 있으면 그걸 사용한다^^. 아마도 있을듯^^;
아니면 한마디로 고생좀 해야 하는데
1. 괄호, 연산자, 숫자 구분하기
2. 5(3-.5) 같은 경우 * 연산 처리해 주기
3. 괄호부분을 먼저 계산을 해야 하는데 찾는 방법은 ')'괄호가 처음 나오는 부분부터 우선순위 적용하면 됩니다.
그럼^^; -
작성자별은빛나고 작성자 본인 여부 작성자 작성시간 12.05.03 김봉한 선배님, 조언 감사드립니다. 그런데 이 프로그램이 그리 쉬운 프로그램은 아닙니다. 이걸 1학년 카페인 이 곳에 문제 낸 것이 어찌 보면 넌센스인지 모르겠습니다. C에서 가장 어렵다는 함수 포인터와 재귀호출이 필요한 프로그램 같습니다. 이 값의 결과가 계산기마다 다르다네요. 왜 그럴까요? 프로그래머들이 아주 쉽게, 결론을 내린 것이겠죠.
-
답댓글 작성자김봉한 작성시간 12.05.24 간단하게 생각하세요. 스택을 이용하여 사용하시면 됩니다. 당연 괄호를 포함한 우선순위를 정용하시면 됩니다. 관련 프로그램 올려 드릴께여^^