Salve a tutti! Ho un problema con il seguente esercizio:
Randomizza i punti di un poligono nel piano, calcola la distanza dei lati e stampa a video il lato maggiore e quello minore.
Teoricamente dovrei randomizzare otto variabili (ascissa e ordinata di quattro punti) ma, quando eseguo il programma, i numeri sono tutti uguali.
Il codice è questo
codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main()
{
int p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y; //dichiaro le variabili dei punti
float distAB, distBC, distCD, distDA; //dichiaro le variabili dei lati
float max, min; //dichiaro le variabili di massimo e minimo
srand(time(NULL)); //do il seed al programma
p1x = rand(); //randomizzo le variabili dei punti
p1y = rand();
p2x = rand();
p2y = rand();
p3x = rand();
p3y = rand();
p4x = rand();
p4y = rand();
distAB = sqrt(pow((p2x - p1x), 2) + pow((p2y - p1y) ,2)); //calcolo le distanze col teorema di pitagora
distBC = sqrt(pow((p3x - p2x), 2) + pow((p3y - p2y) ,2));
distCD = sqrt(pow((p4x - p3x), 2) + pow((p4y - p3y) ,2));
distDA = sqrt(pow((p1x - p4x), 2) + pow((p1y - p4y) ,2));
max = distAB; //imposto i controlli per scoprire il lato più lungo
if (distBC > max) distBC = max;
if (distCD > max) distCD = max;
if (distDA > max) distDA = max;
min = distAB; //imposto i controlli per scoprire il lato più corto
if (distBC < min) distBC = min;
if (distCD < min) distCD = min;
if (distDA < min) distDA = min;
printf("il programma ha generato quattro punti nello spazio e\nha calcolato i lati del poligono corrispondente.\n\n");
printf("latoAB = %f\nlatoBC = %f\nlatoCD = %f\nlatoDA = %f", distAB, distBC, distCD, distDA);
printf("\n\nlato max = %f\nlato min = %f", max, min);
return 0;
}
La domanda è: cos'è che sbaglio? Sbaglio la sintassi della funzione rand() oppure devo usare più seed? Se devo dare più seed, come faccio? Grazie in anticipo
[EDIT] Chiedo scusa se vedo molte discussioni ma non rispondo ad alcuna di esse, sono un programmatore principiante e ho ancora tanto da imparare prima di poter correggere i programmi che postano gli altri utenti