PDA

Visualizza la versione completa : Strutture c


gabama
17-01-2009, 17:33
All' inizio di prog II ho un problema,data 1 strutture punto e una struttura rettangolo come si fa a fargli calcolare l'area,posto il codice ovviamente non completo

#include <stdio.h>

main(){

struct point {
int x;
int y;
};
struct point p;

printf("\nInserire x: ");
scanf("%d", &p.x);
printf("\nInserire y: ");
scanf("%d", &p.y);

printf("x e' %d\ny e' %d",p.x,p.y);

struct rect {
struct point pt1;
struct point pt2;
};
struct rect r;

}


Grazie in anticipo

NaTEn
17-01-2009, 18:26
Se puoi postare il codice completo credo sia meglio, comunque la struct rettangolo non deve contenere 4 struct point?? (il rettangolo ha 4 vertici, non 2)...
Poi le struct è consigliabile definirle prima del main, o comunque all'inizio, normalmente le variabili si implementano all'inizio del programma o del sottoprogramma, cosìcché non si deve continuare a fare su e giù per vedere a cosa si riferiscono e cose varie...
Per il calcolo dell'area devi fare la distanza tra 2 punti e calcoli la base, la distanza tra altri 2 punti e calcoli l'altezza. Questi 2 risultati li immagazzini in due variabili b e h (consigliabile implementarle float).
Ovviamente devi fare anche i controlli che i punti che immetti siano effettivamente di un rettangolo e non siano messi a caso.
Posta il codice completo che posso esserti più chiaro...

Fabio

MItaly
17-01-2009, 18:30
Originariamente inviato da NaTEn
Se puoi postare il codice completo credo sia meglio, comunque la struct rettangolo non deve contenere 4 struct point?? (il rettangolo ha 4 vertici, non 2)...

Sì, ma per definire un rettangolo allineato rispetto agli assi cartesiani (come credo che voglia fare) basta definire il punto in alto a sinistra e quello in basso a destra (oppure in alto a destra e in basso a sinistra).

NaTEn
17-01-2009, 18:36
Originariamente inviato da MItaly
Sì, ma per definire un rettangolo allineato rispetto agli assi cartesiani (come credo che voglia fare) basta definire il punto in alto a sinistra e quello in basso a destra (oppure in alto a destra e in basso a sinistra).

Già... Non avevo pensato a quella soluzione. Beh comunque postare il codice completo non credo faccia male, perché io non ho capito cosa non riesce in questo modo. Non sa come calcolare la distanza?? Non sa la formula?? Boh..

gabama
19-01-2009, 10:52
Ho risolto grazie

Loading