Witam.
Dostałem zadanie o treści:
Tablica tab_punkty zawiera współrzędne N punktów na płaszczyźnie. Napisz funkcję tworzącą tablicę odległości punktów od początku układu współrzędnych. Wskaźnik do tablicy jest przekazany z funkcji przez return. Napisz program, w którym wczytane są dane, wywołana funkcja, wyświetlone wyniki.
Mam problem jak skutecznie wczytać współrzędne X i Y punktów do tablicy, a potem jeszcze dobrze utworzyć dynamicznie tablicę z wynikami odległości.
Tyle napisałem, ale nie działa to do końca skutecznie:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float* licze(int N, int l, float tab[][N]);
int main()
{
int N, i, j, l = 0;
float* t;
printf("Podaj liczbe wspolrzednych N: ");
scanf("%d", &N);
float tab[2][N];
for (i = 0; i < 2; i++)
for (j = 0; j < N; j++)
{
printf("Podaj wspolrzedne: ");
scanf("%f", &tab[i][j]);
l++;
}
for (i = 0; i < 2; i++)
{
for (j = 0; j < N; j++) // wykonanie tej pętli powoduje
printf("%f\t", tab[i][j]); // wyświetlenie i-tego wiersza tablicy
printf("\n");
}
t = licze(N, l, tab);
for (i = 0; i < l; i++)
{
printf("%f\t", t[i]); // wyświetlenie i-tego wiersza tablicy
printf("\n");
}
return 0;
}
float* licze(int N, int l, float tab[][N])
{
int i, j, k = 0;
float* nt = (float*)malloc(l * sizeof(float));
for (i = 0; i < 2; i++)
for (j = 0; j < N; j++)
{
nt[k] = sqrt((tab[1][i]) * (tab[0][j]));
k++;
}
return nt;
}