[re] 컴 잘하시는 분 꼭 도와주세요.!!!!

묻고답하기 · #1292

← 묻고답하기

가을동화 · 2003-10-30 07:53:07 · 조회 1373

>급히 바칠 숙제(가다이)데요,제 힘으로는 도저히 못하겠어요.도와주세요.!!!!
>http://fumichan.zive.net/prog/C/kd030701.jsp 이 문제예요.
>요로시끄 오네가이시마쓰!!!
>

****리플에서 TAB가 먹히지 않아서 새창열어 올림돠....

....RPN(Reverse Polish Notation)기법이라고 전자공학에서 마니 씌여지는걸로 알고 있숨다.
몇년전에 二叉樹를 배우면서 숙제로 했던 일이 기억나네용..
아래 코드 간단히 정리해봤숨다.....도움이 되었으면 하면서 숙제는 자기절로 해야죵.ㅋㅋ




// ScriptName : main.cpp
//===========================================================================

#define MAXOP 100
#define NUMBER '0'

int getop(char []);
void push(double);
double pop(void);

/* reverse polish calculator */

main() {
int type;
double op2;
char s[MAXOP];

while ((type = getop(s)) != EOF) {
switch (type) {
case NUMBER:
push(atof(s));
break;
case '+':
push(pop() + pop());
break;
case '*':
push(pop() * pop());
break;
case '-':
op2 = pop();
push(pop() - op2);
break;
case '/':
op2 = pop();
if (op2 != 0.0)
push(pop() / op2);
else
printf("error: zero divisionn");
break;
case 'n':
printf("t%.8gn",pop());
break;
default:
printf("error: unknown command %sn",s);
break;
}
}

return 0;
}



//ScriptName : stack.cpp
//===========================================================================

#define MAXVAL 100
int sp = 0;
double val[MAXVAL];

void push(double f) {
if (sp < MAXVAL )
val[sp++] = f;
else
printf("error: stack full, can't push %gn", f);
}


double pop(void) {
if (sp > 0)
return val[--sp];
else {
printf("error: stack emptyn");
return 0.0;
}
}



//ScriptName : getop.cpp
//===========================================================================


#include <ctype.h>
int getch(void);
void ungetch(int);

/* getop: get next operator or numeric operand */

int getop(char s[]) {
int i, c;
while ((s[0] = c = getch()) == ' ' || c == 't')
;

s[1] = '';
if (!isdigit(c) && c != '.')
return c;

i = 0;
if (isdigit(c))
while (isdigit(s[++i] = c = getch()))
;

if (c == '.')
while (isdigit(s[++i] = c = getch()))
;


s[i] = '';
if (c != EOF)
ungetch(c);

return NUMBER;
}



//ScriptName : getch.cpp
//===========================================================================

#define BUFSIZE 100

char buf[BUFSIZE];
int bufp = 0;

int getch(void) {
return (bufp > 0) ? buf[--bufp] : getchar();
}

void ungetch(int c) {
if (bufp >= BUFSIZE)
printf("ungetch: too many charactersn");
else
buf[bufp++] = c;
}

쉼터에 새로운 글 쓰기는 금지되었습니다. 하지만 과거의 소중한 기록 중에 꼭 다른 분들에게도 읽었으면 하는 좋은 글들은 「추천하기」를 눌러주세요.

일부 글들은 악성광고나 의미없는 스팸들일 수 있습니다. 읽는 분들에게 피해가 되거나 삭제를 희망하는 글에는 신고를 클릭해주세요. 로봇을 통하여 정기적으로 확인 및 정리를 합니다.

묻고답하기 · 리스트 (34,110 건)

제목투고자날짜조회코멘트
알고싶어요딸기2003-11-04 13:36196415
사진 올리려고 하는데 안되요? 어떻하면 되죠?섹시섹스2003-11-04 12:55141511
영화나 드라마를 어떻게 하면 다운받고 올릴수 있는지 부탁드립니다지 성2003-11-03 11:53165315
경영자님 저 큰일 났어요 거의 모든 파일이 실행이 안돼요..푸른하늘2003-11-03 11:06194214
학교에 관해 문의합시다에가오2003-11-03 10:31190820
도와주세요달뜨는아침2003-11-03 00:3518007
Office2003のインスト&#12540;ルについてjinm2003-11-02 22:1913205
헐~~~~~~나기윤2003-11-02 17:22202729
일본 각지의 소비수준의 차이는 어떻게 되죠?☜하나☞2003-11-02 17:2526962
교토대학의 학생한테 도움청하고 싶은데...TSTM2003-11-01 10:5720117
도와주세요!!!!hyj6212003-11-01 01:43201716
해결책 없을까요?련정2003-10-31 16:08190329
도와주세요..sky2003-10-30 11:29183640
컴 잘하시는 분 꼭 도와주세요.!!!!카와이이2003-10-30 00:30200516
▶ [re] 컴 잘하시는 분 꼭 도와주세요.!!!!가을동화2003-10-30 07:5313730
벅스음악동영상재생.....가필드2003-10-29 04:07188211
여러분에게 묻고 싶은게 잇는데.......여우2003-10-28 18:53123590
긴급원조 바랍니다.하니2003-10-28 19:5523236
관리원에게 묻고싶습니다.천사LOVE2003-10-27 10:40175030
마이 도규멘또의 파일이 실행안되네요푸른하늘2003-10-26 13:09196314
사회학에 유명한 대학 알려주세요mydream2003-10-26 00:23204430
延吉紹介サイトを&#25945;えてください。hgkim2003-10-24 14:09195751
동경영어전문학교이욱호2003-10-24 01:5816491
물어봅시다에가오2003-10-23 18:0420186
누구 아는 사람 없어요?주연은너와나2003-10-23 14:0717593
회원님들 한테 한가지 묻겠습니다,제발승냥이2003-10-23 08:1118645
왜서 볼수가 없지여???flower pig2003-10-22 09:2520774
부탁합니다~~야다2003-10-20 03:3224342
일본에는 IT조선족모임이 없는가요메기2003-10-21 17:3921402
?어쩌면 좋죠?sky2003-10-20 18:45201713
← 이전1129 / 1137다음 →