Advertisement
fqrmix

Северов Никита лаба 5

Dec 3rd, 2016
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5. #include <locale.h>
  6.  
  7. struct Coords
  8. {
  9.     float x;
  10.     float y;
  11.     float distance;
  12. };
  13.  
  14. float distance(float x, float y)
  15. {
  16.  
  17.     return sqrt(pow(x, 2) + pow(y, 2));
  18.  
  19. }
  20.  
  21. void input(struct Coords *ptr, unsigned int n)
  22. {
  23.     for (unsigned int i = 0; i < n; i++)
  24.     {
  25.  
  26.         printf("Введите x для %u точки\n", i + 1);
  27.         scanf("%f", &(ptr + i)->x);
  28.         printf("Введите y для %u точки\n", i + 1);
  29.         scanf("%f", &(ptr + i)->y);
  30.         (ptr + i)->distance = distance((ptr + i)->x, (ptr + i)->y);
  31.  
  32.     }
  33. }
  34.  
  35. void output(struct Coords *ptr ,unsigned int index)
  36. {
  37.  
  38.     printf("Самая отдаленная точка имеет координаты x - %f, y - %f\n", (ptr + index)->x, (ptr + index)->y);
  39.  
  40. }
  41.  
  42.  
  43. void main()
  44. {
  45.  
  46.     setlocale(LC_ALL, "");
  47.  
  48.     printf("Введите количество точек\n");
  49.     unsigned int n, index = 0;
  50.     scanf("%u", &n);
  51.  
  52.     Coords coordinates[100], *pointer;
  53.  
  54.     input(coordinates, n);
  55.  
  56.     float max_dist = coordinates->distance;
  57.  
  58.     for (unsigned int i = 0; i < n; i++)
  59.     {
  60.         if ((pointer + i)->distance > max_dist)
  61.         {
  62.             max_dist = (pointer + i)->distance;
  63.             index = i;
  64.         }
  65.     }
  66.     output(coordinates, index);
  67.  
  68.     system("pause");
  69.  
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement