Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int scan_data(char* ,double*);
- int do_next_op(char ,double ,double*);
- int main()
- {
- char compute;
- double operand,accumulator;
- int re,ret;
- accumulator = 0;
- while(compute!='q')
- {
- ret=scan_data(&compute,&operand);
- re=do_next_op(compute,operand,&accumulator);
- printf("ret = %d , re = %d\n\n",ret,re);
- if(compute=='q' && ret!=0)
- {
- printf("final result is %.1f\n",accumulator);
- break;
- }
- else if(compute!='q' && re!=0 && ret!=0)
- {
- printf("result so far is %.1f\n",accumulator);
- }
- if(re==0 || ret==0)
- {
- printf("the operator or operand is fault, please enter again\n");
- continue;
- }
- }
- return 0;
- }
- int scan_data(char *m, double *n)
- {
- int r;
- scanf(" %c",m);
- r=scanf("%lf",n);
- printf("r = %d\n",r);
- while(getchar()!='\n');
- return r;
- }
- int do_next_op(char a, double b, double *c)
- {
- switch(a)
- {
- int i;
- double j;
- case '+':
- *c = *c +b;
- break;
- case '-':
- *c = *c -b;
- break;
- case '*':
- *c = *c *b;
- break;
- case '/':
- *c = *c /b;
- break;
- case '^':
- j=1;
- for(i=1;i<=b;i++)
- {
- j = *c *j;
- }
- *c = j;
- break;
- case 'q':
- break;
- default:
- return 0;
- break;
- }
- }
Add Comment
Please, Sign In to add comment