Salve,
devo scrivere un programma che dati casualmente n punti al'interno di un cerchio di raggio 1 e centro l'origine mi calcoli le distanze di tutti i punti con tutti i punti:
il codice:
//generatore di numeri causali all'interno di un cerchio di centro (0,0) e raggio 1.
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<math.h>
void Cor_pol_cart (int n, int num, double **d, double *rho, double *theta);
int main(){
long int seed = 36547;
int i,n, num=0;
const double PI=3.14159;
double *rho, *theta, **d;
printf ("quanti sono i valori casuali? \n");
scanf("%d", &n);
rho=(double*) malloc(n*sizeof(double));
if (rho==NULL)
{
printf("\n errore: memoria non disponibile \n");
exit(1);
}
theta=(double*) malloc(n* sizeof(double));
if (theta==NULL)
{
printf("\n errore: memoria non disponibile \n");
exit(2);
}
for(i=1; i<n+1; i++) num=num+i;
printf("%d\n", num);
srand(seed);
for (i=0; i<n; i++)
{
rho=drand48();
theta=2*PI*drand48();
printf("%lf %lf\n", rho, theta);
}
printf("\n");
d=(double**)malloc(n* sizeof(double*));
for(i=0; i<num; i++)
d=(double*)malloc(n* sizeof(double));
Cor_pol_cart(n, num, d, rho, theta);
//printf("%lf", d[0]);
free(rho);
free(theta);
for(i=0; i<num; i++)
free(d);
free(d);
return 0;
}
void Cor_pol_cart (int n, int num, double **d, double *rho, double *theta)
{
int i, j, k;
double x[n], y[n], sin(double theta), cos(double theta);
for (i=0; i<n; i++)
{
x=rho*cos(theta);
y=rho[i]*sin(theta[i]);
printf("%lf %lf\n", x[i], y[i]);
}
//distanze di tutti i punti con tutti i punti:
for(i=0; i<n-1; i++)
{for (j=0; j<n; j++)
{d[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
//printf("%lf", d[k]);
}
}
}
gli errori:
Cerch.c: In function ‘Cor_pol_cart’:
/tmp/ccm7Lrla.o: nella funzione "Cor_pol_cart":
Cerch.c:(.text+0x391): riferimento non definito a "cos"
Cerch.c:(.text+0x3e7): riferimento non definito a "sin"
Cerch.c:(.text+0x52e): riferimento non definito a "sqrt"
collect2: error: ld returned 1 exit status
oltre a non capire cosa significhi riferimento non definito a "..."
ignoro il significato di "collect2: error: ld returned 1 exit status"
grazie a tutti...