all-in-one-file.c 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. **
  3. ** Copyright @ 2020 Joshua Branson <jbranso@member.fsf.org>
  4. **
  5. ** This program is free software; you can redistribute it and/or modify it
  6. ** under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation; either version 3 of the License, or (at
  8. ** your option) any later version.
  9. **
  10. ** It is distributed in the hope that it will be useful, but
  11. ** WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. #include <stdio.h>
  19. #include <math.h>
  20. #define DOUBLE(x) ((x) * (x))
  21. struct x_y_point
  22. {
  23. float x, y;
  24. };
  25. double get_distance (struct x_y_point a, struct x_y_point b)
  26. {
  27. return (float) sqrtf (DOUBLE (fabsf (a.x - b.x)) + DOUBLE (fabsf (a.y - b.y)));
  28. }
  29. int main ()
  30. {
  31. /* struct x_y_point a = { 0.0, 0.0 }; */
  32. /* struct x_y_point b = { 1.0, 0.0 }; */
  33. struct x_y_point a;
  34. struct x_y_point b;
  35. a.x = 0.0;
  36. a.y = 0.0;
  37. b.x = 0.0;
  38. b.y = 1.0;
  39. double distance = get_distance (a, b);
  40. printf ("Distance between two points is %f\n", distance);
  41. return 0;
  42. }