Advertisement
dusanrs

Untitled

Apr 18th, 2022
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.64 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. float* Calculate(char* buffer);
  5.  
  6. int main()
  7. {
  8.     char *poc = (char* )malloc(sizeof(char)+2*sizeof(int));
  9.     float *resenje;
  10.     int a, b;
  11.  
  12.  
  13.     printf("Operacija(0-3): ");
  14.     scanf("%c",poc);
  15.     printf("Unesite dva celobrojna podatka: ");
  16.     scanf("%d %d",poc+sizeof(char),poc+sizeof(char)+sizeof(int));
  17.  
  18.     resenje=Calculate(poc);
  19.  
  20.     a = *((int *)(poc+sizeof(char)));
  21.     b = *((int *)(poc+sizeof(char)+sizeof(int)));
  22.  
  23.     switch(*poc){
  24.         case '0': printf("%d + %d:  %.2f",a,b,*resenje);
  25.             break;
  26.         case '1': printf("%d - %d:  %.2f",a,b,*resenje);
  27.             break;
  28.         case '2': printf("%d * %d:  %.2f",a,b,*resenje);
  29.             break;
  30.         case '3': if(b!=0) printf("%d / %d:  %.2f",a,b,*resenje);
  31.                     else printf("\nGreska!\nDeljenje sa nulom!!");
  32.             break;
  33.     }
  34.  
  35.     return 0;
  36. }
  37.  
  38. float* Calculate(char* buffer)
  39. {
  40.     float *resenje = (float*)malloc(sizeof(float));
  41.  
  42.     switch(*buffer){
  43.         case '0': *resenje = *((int *)(buffer+sizeof(char))) + *((int *)(buffer+sizeof(char)+sizeof(int)));
  44.             break;
  45.         case '1': *resenje = *((int *)(buffer+sizeof(char))) - *((int *)(buffer+sizeof(char)+sizeof(int)));
  46.             break;
  47.         case '2': *resenje = *((int *)(buffer+sizeof(char))) * *((int *)(buffer+sizeof(char)+sizeof(int)));
  48.             break;
  49.         case '3': if(*((int *)(buffer+sizeof(char)+sizeof(int)))!=0) *resenje = *((int *)(buffer+sizeof(char))) / *((int *)(buffer+sizeof(char)+sizeof(int)));
  50.                   else  *resenje = 0;
  51.             break;
  52.     }
  53.  
  54.     return resenje;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement