好象是学完C了之后都会被要求写这个破程序!
我学完PASCAL的时候写过一次,C之后又写过一次,数据结构之后又是一次。
现在一说studentMIS我都要疯了!
#include"stdlib.h" typedef struct{ char *base; char *top; }Stack; Stack *S; void InitStack(Stack *S) { S->base=(char*)malloc(4*sizeof(char)); if(!S->base)exit(-2); S->top=S->base; } void pushstack(Stack *S,char a) { *(S->top)=a; S->top++; }
void input() { char a; int i=0; InitStack(S); while(i<3) { scanf("%c",&a); pushstack(S,a); i++; } } int chartonum(char *a) { int result; result=*a-'0'; return result; } void error() {printf("The strings input are error"); } void compute(float *result) { char *flag; int a,b; a=chartonum(S->top-3); b=chartonum(S->top-1); flag=S->top-2; switch (* flag) { case '+':*result=a+b;break; case '-':*result=a-b;break; case '*':*result=a*b;break; case '/': if(b!=0) {*result=a/b;break;} else {error();break;} default:error(); } } main() { float *result=0; input(); compute(result); printf("%f",*result); }
#include"stdlib.h" typedef struct{ char *base; char *top; }Stack; Stack *S; void InitStack(Stack *S) { S->base=(char*)malloc(4*sizeof(char)); if(!S->base)exit(-2); S->top=S->base; } void pushstack(Stack *S,char a) { *(S->top)=a; S->top++; }
void input() { char a; int i=0; InitStack(S); while(i<3) { scanf("%c",&a); pushstack(S,a); i++; } } int chartonum(char *a) { int result; result=*a-'0'; return result; } void error() {printf("The strings input are error"); } void compute(float *result) { char *flag; int a,b; a=chartonum(S->top-3); b=chartonum(S->top-1); flag=S->top-2; switch (* flag) { case '+':*result=a+b;break; case '-':*result=a-b;break; case '*':*result=a*b;break; case '/': if(b!=0) {*result=a/b;break;} else {error();break;} default:error(); } } main() { float *result=0; input(); compute(result); printf("%f",*result); }