veselinsavov

Untitled

Feb 12th, 2015
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.26 KB | None | 0 0
  1. #include <stdio.h>
  2. int  * getRectangle();
  3. int * getCircles();
  4. int showInput(int r, int c);
  5. int checkCircles(int r, int c);
  6. int main()
  7. {
  8.         int input = 0;;
  9.         float *circle;
  10.         float *rectangle;
  11.         while(input != 5){
  12.                 printf("\nMenu");
  13.                 printf("\n-1- Enter circles");
  14.                 printf("\n-2- Enter rectangle");
  15.                 printf("\n-3- Show input values");
  16.                 printf("\n-4- Check if circles are in rectangle");
  17.                 printf("\n-5- Exit");
  18.                 printf("\nChoose an option between 1-5\n");
  19.                 scanf("%d", &input);
  20.                 switch(input){
  21.                         case 1: circle = getCircles();break;  
  22.                         case 2: rectangle = getRectangle();break;
  23.                         case 3: showInput(rectangle,circle);break;
  24.                         case 4: checkCircles(rectangle,circle);break;
  25.                         case 5: printf("\n\nBye bye");break;
  26.                         }
  27.                 }
  28. }
  29. int showInput(int r,int c){
  30.         float *circle;
  31.         circle = c;
  32.         float *rectangle;
  33.         rectangle = r;
  34.         printf("\nRectangle:");
  35.         printf(" x1: %.6g;", *(rectangle));
  36.         printf(" y1: %.6g;", *(rectangle + 1));
  37.         printf(" x2: %.6g;", *(rectangle + 2));
  38.         printf(" y2: %.6g;", *(rectangle + 3));
  39.         printf("\n");
  40.         float count = *circle;
  41.         int i,id = 1;
  42.         for(i = 0; i < count; i+= 3,id++){
  43.                         printf("\nCircle #%d",id);
  44.                         printf(" r: %.6g;", *(circle + i + 1));
  45.                         printf(" x: %.6g;", *(circle + i+ 2));
  46.                         printf(" y: %.6g;", *(circle + i + 3));
  47.                         printf("\n");
  48.                 }
  49.         }
  50.        
  51. int checkCircles(int r, int c){
  52.         float *circle;
  53.         circle = c;
  54.         float *rectangle;
  55.         rectangle = r;
  56.         float count = *circle;
  57.         int i,id = 1;
  58.         for(i = 1; i < (int)count; i+= 3,id++){
  59.                         printf("\nCircle #%d is ",id);
  60.                         float cLeft = (*(circle + i + 1)- *(circle + i));
  61.                         float cRight = (*(circle + i + 1) + *(circle + i));
  62.                         float cUp = (*(circle + i + 2) + *(circle + i));
  63.                         float cDown = (*(circle + i + 2) - *(circle + i));
  64.                         if( *(rectangle) <= cLeft && *(rectangle + 2) >= cRight &&
  65.                                 *(rectangle +1) <= cDown && *(rectangle + 3) >= cUp){
  66.                                         printf("inside");
  67.                                 } else {
  68.                                         printf("outside");
  69.                                         }
  70.                         printf("\n");
  71.                 }
  72.         }
  73. int  * getRectangle() {
  74.         float rx1 = 0,rx2 = 0,ry1 = 0,ry2 = 0;
  75.         printf("\nEnter x1:");
  76.         scanf("%f", &rx1);
  77.         printf("\nEnter y1:");
  78.         scanf("%f", &ry1);
  79.         printf("\nEnter x2:");
  80.         scanf("%f", &rx2);
  81.         printf("\nEnter y2:");
  82.         scanf("%f", &ry2);
  83.         static float rectangle[4];
  84.         rectangle[0] = rx1;
  85.         rectangle[1] = ry1;
  86.         rectangle[2] = rx2;
  87.         rectangle[3] = ry2;
  88.         return rectangle;
  89. }
  90. int * getCircles(){
  91.         float r = 0,x = 0, y = 0;
  92.         int i,num = 0;
  93.         static float circles[214];
  94.         printf("\nEnter number(1- 72) of circles:");
  95.         //scanf("%d",&num);
  96.         while(1){
  97.             scanf("%d",&num);
  98.             if(num > 0 && num < 73){
  99.                 break;
  100.             }
  101.             printf("Number must be between 1 - 72");   
  102.         }
  103.         num *= 3;
  104.         circles[0] = num;
  105.         for(i = 1;i <= num; i+=3){
  106.                 printf("\nEnter r:");
  107.                 scanf("%f", &r);
  108.                 while(r < 0){
  109.                         printf("\nr must be positive number:");
  110.                         scanf("%f", &r);
  111.                         }
  112.                 printf("\nEnter x:");
  113.                 scanf("%f", &x);
  114.                 printf("\nEnter y:");
  115.                 scanf("%f", &y);
  116.                 circles[i] = r;
  117.                 circles[i + 1] = x;
  118.                 circles[i + 2] = y;
  119.                 }
  120.                 return circles;
  121.         }
Advertisement
Add Comment
Please, Sign In to add comment