Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- int siz;
- double stack_c[100000];
- char que[1000];
- void push(double cost)
- {
- siz++;
- stack_c[siz] = cost;
- return;
- }
- double pop()
- {
- double q = stack_c[siz];
- siz--;
- return q;
- }
- void init()
- {
- siz = 0;
- }
- int main()
- {
- init();
- printf("sale format: s 12/34/18 2.30 pm 120 1.67\n");
- printf("receipt format: r 12/34/18 2.30 pm 120 1.67\n");
- printf("-1 for exit\n");
- while(1)
- {
- gets(que);
- //printf("%s\n",que);
- if(que[0]=='-' && que[1]=='1')
- {
- break;
- }
- else if(que[0]=='r')
- {
- //printf("receipt taken\n");
- int len = strlen(que);
- int typ = 0; // 1 for integer -1 for decimal
- int dotpos = len;
- for(int i=len-1; i>=0; i--)
- {
- if(que[i]=='.')
- {
- typ = -1;
- dotpos = i;
- break;
- }
- if(que[i]==' ')
- {
- typ = 1;
- break;
- }
- }
- double po = 1;
- double num = 0;
- int gappos = len-1;
- for(int i=dotpos-1; i>=0; i--)
- {
- if(que[i]==' ')
- {
- gappos = i;
- break;
- }
- num += ((int)(que[i]-'0'))*po;
- po*=10;
- }
- if(typ==-1)
- {
- po = 0.1;
- for(int i=dotpos+1; i<=len-1; i++)
- {
- num += ((int)(que[i]-'0'))*po;
- po/=10;
- }
- }
- int num2 = 0;
- int po2 = 1;
- for(int i=gappos-1; i>=0; i--)
- {
- if(que[i]==' ')
- {
- //gappos = i;
- break;
- }
- num2 += ((int)(que[i]-'0'))*po2;
- po2*=10;
- }
- printf("receipt taken %d items at %f per item\n",num2,num);
- for(int i=1; i<=num2; i++)
- {
- push(num);
- }
- printf("Current items: %d\n",siz);
- }
- else if(que[0]=='s')
- {
- int po = 1;
- int num = 0;
- int len = strlen(que);
- for(int i=len-1; i>=0; i--)
- {
- if(que[i]==' ')
- {
- break;
- }
- num += ((int)(que[i]-'0'))*po;
- po*=10;
- }
- double last_p;
- int siz2 = 0;
- int sizc = siz;
- if(siz!=0)
- {
- //siz2++;
- last_p = stack_c[siz];
- }
- siz--;
- int cnt = 1;
- while(siz>0 && cnt<num)
- {
- double price = stack_c[siz];
- if(fabs(price-last_p)>0.1)
- {
- printf("%d SCREWDRIVERS SOLD AT RM %f\n",cnt,last_p);
- cnt = 1;
- last_p = price;
- siz--;
- }
- else
- {
- cnt++;
- siz--;
- }
- }
- printf("%d SCREWDRIVERS SOLD AT RM %f\n",cnt,last_p);
- printf("sale done\n");
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement