Sou novo aqui, e gostaria de ajuda urgente em um programa. Sei que o programa está errado, e queria uma ajuda pra finaliza-lo.
Enunciado: Crie um struct para representar os pontos no espaço 2D. Em seguida, aloque dinamicamente um array de N struct e leia os N pontos do usuário. Por fim, aloque dinamicamente edetermine as entradas da matriz distância, Anxn, onde Aixj = dij. dij é a distancia euclidiana entre os pontos i e j. (A diagonal princiál da matriz é nula).
Segue o que fiz:
#include <stdio.h>
#include <stdlib.h>
struct ponto {
double x, y;
};
int main()
{
struct ponto *p;
double **d;
int l, c;
int **m = (int**)malloc(l * sizeof(int*));
p = (struct ponto*) calloc(l , sizeof(struct ponto));
p = (struct ponto*) calloc(c , sizeof(struct ponto));
printf("Informe o tamanho da matriz: ");
scanf("%d%d", &l, &c);
if (l == c){
for (i = 0; i < l; i++){//Percorre as linhas do Vetor de Ponteiros
m[l] = (int*) malloc(c * sizeof(int));
for (i = 0; i < l; i++) //Percorre as colunas do Vetor de Ponteiro
printf("Digite as coordenadas x e y do vetor u: ");
scanf("%lf%lf", &p.x, &p[j].y);
printf("Digite as coordenadas x e y do vetor v: "); scanf("%lf%lf", &p.x, &p[j].y);
d[j] = sqrt( pow(p.x - p[j].x, 2) + pow(p.y - p[j].y, 2) ); }
printf("\n\nA distancia entre os vetores u e v é: %lf\n", d[j]);
for(j = 0; j < c; j++){ if(i == j){ printf("'0'"); }else{ printf("%lf", d[j]); } printf("\n"); }
for(i = 0; i < l; i++) free(m[l]); free(m); } system("pause"); return 0; }