Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.37 KB | None | 0 0
  1. //Sviluppare una function C che, dato come parametro di input un array di tipo struct
  2. //punto double x; double y;  e il suo size, determina e restituisce come parametro di
  3. //output la massima distanza tra i punti. I campi x e y contengono l’ascissa e
  4. //l’ordinata, rispettivamente, di un punto.
  5.  
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <math.h>
  9. typedef struct punto{
  10. double x;
  11. double y;}Punto;
  12. void distanza_massima(Punto [],int,int*,int*);
  13. int main()
  14. {
  15.     int i,n,indice_1=0,indice_2=0;
  16.     Punto array[100];
  17.     printf("Inserire il numero di punti da considerare:\n");
  18.     scanf("%d",&n);
  19.     for(i=0;i<n;i++)
  20.     {
  21.         printf("x%d= ",i);
  22.         scanf("%lf",&array[i].x);
  23.         printf("y%d= ",i);
  24.         scanf("%lf",&array[i].y);
  25.     }
  26.     distanza_massima(array,n,&indice_1,&indice_2);
  27.     printf("La distanza massima e' quella tra i punti di indice %d e %d",indice_1,indice_2);
  28. }
  29.  
  30. void distanza_massima(Punto array[],int n,int*ind_1,int *ind_2)
  31. {
  32.     int i,j;
  33.     int dist=0,max_dist=0;
  34.     max_dist=sqrt(pow(array[1].x-array[0].x,2))+(pow(array[1].y-array[0].y,2));
  35.     *ind_1=0;
  36.     *ind_2=1;
  37.     for(i=0;i<n;i++){
  38.         for(j=0;j<n;j++){
  39.             dist=sqrt(pow(array[i].x-array[j].x,2))+(pow(array[i].y-array[j].y,2));
  40.         if(dist>max_dist && i!=j){
  41.             *ind_1=i;
  42.             *ind_2=j;
  43.         }
  44.      }
  45.  
  46. }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement