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
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 anticipocodice:#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; }
[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

					
					
					
						
  Rispondi quotando