Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Sviluppare una function C che, dato come parametro di input un array di tipo struct
- //punto double x; double y; e il suo size, determina e restituisce come parametro di
- //output la massima distanza tra i punti. I campi x e y contengono l’ascissa e
- //l’ordinata, rispettivamente, di un punto.
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- typedef struct punto{
- double x;
- double y;}Punto;
- void distanza_massima(Punto [],int,int*,int*);
- int main()
- {
- int i,n,indice_1=0,indice_2=0;
- Punto array[100];
- printf("Inserire il numero di punti da considerare:\n");
- scanf("%d",&n);
- for(i=0;i<n;i++)
- {
- printf("x%d= ",i);
- scanf("%lf",&array[i].x);
- printf("y%d= ",i);
- scanf("%lf",&array[i].y);
- }
- distanza_massima(array,n,&indice_1,&indice_2);
- printf("La distanza massima e' quella tra i punti di indice %d e %d",indice_1,indice_2);
- }
- void distanza_massima(Punto array[],int n,int*ind_1,int *ind_2)
- {
- int i,j;
- int dist=0,max_dist=0;
- max_dist=sqrt(pow(array[1].x-array[0].x,2))+(pow(array[1].y-array[0].y,2));
- *ind_1=0;
- *ind_2=1;
- for(i=0;i<n;i++){
- for(j=0;j<n;j++){
- dist=sqrt(pow(array[i].x-array[j].x,2))+(pow(array[i].y-array[j].y,2));
- if(dist>max_dist && i!=j){
- *ind_1=i;
- *ind_2=j;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement