*동*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 1
검색어 입력폼
  • [프로그레밍]Linear Linked List를 사용한 사칙연산
    Programing Language2HW2담당교수 : 전 종 훈담당조교 : 정 성 원소 속 반 : B반학 번 : 60052302이 름 : 이 상 민tool: Microsoft visual C++프로그렘 설명: stack을 이용한 사칙 연산소스코드#include #include #include #define MAX 100void input_stack(void); 사용자 함수 프로토 타입 선언int put(int cal);int pop(void);int getstack(void);int stackempty(void);void postfix(char *src_exp, char *dst_exp);int operation_check(int oper);char *check_digit(char *infix_funct);int calculate(char *postfix_funct);int stack[MAX];int top;void main(void) 메인시작{char infix_funct[256];// 초기 식을 받을 곳char postfix_funct[256];// 식을 postfix로 변화하여 저장할곳int result; //결과를 저장할곳printf("계산 할 식을 입력하시오 ( *,/,+,-,(,) ) : n");printf("종료하실려면 (q)를 입력 하십시요 n");while(1){ //무한 루푸scanf("%s",infix_funct); //식을 입력 받음if(*infix_funct=='q'){ //q가 입력 될 경우 종료exit(1);}postfix(infix_funct, postfix_funct); //postfix로 변화와 출력printf("nPostfix : %s", postfix_funct);result = calculate(postfix_funct); //식을 계산하고 출력printf("n연산 결과 : %dn", result);}}void input_stack(void) //스택 초기화{top = -1;}int put(int cal){if(top >= MAX - 1){printf("n 스택의 범위를 벗어났습니다.");exit(1);}stack[++top] = cal;return cal;}int pop(void){if(top < 0){printf("n 스택의 범위를 벗어났습니다.");exit(1);}return stack[top--];}int getstack(void){return (top < 0) ? -1 : stack[top];}]int stackempty(void) 스택 empty 검사{return (top < 0);}int operation_check(int oper) // 연산자 우선순위 부여 하는 함수{if(oper == '(') return 0;else if(oper == '+' || oper == '-') return 1;else if(oper == '*' || oper == '/') return 2;else return 3;}// 잘못된 카운트 입력을 막고 하나의 수로 취급하기 위한 함수 */char *check_digit(char *infix_funct){while(isdigit(*infix_funct)){infix_funct++;}return --infix_funct;}void postfix(char *src_exp, char *dst_exp){input_stack();while(*src_exp){if(*src_exp == '('){put(*src_exp);src_exp++;}else if(*src_exp == '+' || *src_exp == '-' || *src_exp == '/' || *src_exp == '*'){while(!stackempty() && operation_check(getstack()) >= operation_check(*src_exp)){*dst_exp++ = pop(); 연산자를 만나면 우선순위기 낮은 연산자를*dst_exp++ = ' '; 만날 때까지 pop한다.}put(*src_exp);src_exp++;}else if(isdigit(*src_exp)){ 숫자는 그대로 출력do{*dst_exp++ = *src_exp++;}while(isdigit(*src_exp));*dst_exp++ = ' ';}else if(*src_exp == ')'){ // ‘)’를 만나면 ‘(’가 나올 때까지 출력 */while(getstack() != '('){*dst_exp++ = pop();*dst_exp++ = ' ';}pop(); /* ‘('를 버림 */src_exp++;}elsesrc_exp++;}while(!stackempty()){*dst_exp++ = pop();*dst_exp++ = ' ';}dst_exp--;*dst_exp = 0;}int calculate(char *postfix_funct){int cal;input_stack(); // 스택의 초기화while(*postfix_funct){if(isdigit(*postfix_funct)){cal = 0;do{cal = cal*10 + *postfix_funct - '0';//한자리 이상의 수 입력대비postfix_funct++;}while(isdigit(*postfix_funct));put(cal);}else if(*postfix_funct == '+'){put(pop() + pop());}else if(*postfix_funct == '*'){put(pop() * pop());}else if(*postfix_funct == '-'){cal = pop();put(pop() - cal);}else if(*postfix_funct == '/'){cal = pop();put(pop() / cal);}else;postfix_funct++;}return pop();}실행 화면예제의 계산과 q의 입력을 통한 프로그렘 종료
    프로그램소스| 2006.05.18| 6페이지| 1,500원| 조회(711)
    미리보기
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 05월 20일 수요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
3:17 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감