PDA

View Full Version : [C++] dov'è l'errore???


pixie
26-11-2007, 15:02
ciao raga è mezz'ora che sto provando d tt ma nn capisco dv sia l'errore in questo programma c++:

int punto1[2],punto2[2],punto3[2];

int area (int area_tri);
int main()
{
cout << "Inserisci le coordinate x e y del primo punto";
cout << "Coordinata x punto 1";
cin >> punto1[0];
cout << "Coordinata y punto 1";
cin >>punto1[1];

cout << "Inserisci le coordinate x e y del secondo punto";
cout << "Coordinata x punto 2";
cin >> punto2[0];
cout << "Coordinata y punto 2";
cin >>punto2[1];

cout << "Inserisci le coordinate x e y del primo punto";
cout << "Coordinata x punto 3";
cin >> punto3[0];
cout << "Coordinata y punto 3";
cin >> punto3[1];

area (punto1[], punto2[], punto3[]);
system ("pause");
}

int area (int area_tri)
{
int area;

area_tri = punto1[0]*punto2[1]+punto1[1]*punto3[0]+punto2[0]*punto3[1]-punto2[1]*punto3[0]-punto1[0]*punto3[1]-punto3[1]*punto2[0];

return 0;
}

li dove chiamo la funzione mi da errore ma nn capisco perchè...help me....ciaociao

wingman87
26-11-2007, 15:23
Hai dichiarato come parametri di area un intero, invece quando la richiami gli passi tre puntatori ad array di interi. E' questo l'errore.
Usa il tag CODE e l'indentazione mi raccomando.

pixie
26-11-2007, 15:54
perdona la mia ignoranza ma nn ho capito...io i puntatori non li ho utilizzati...potresti farmi vedere cm dovrei chiamare la funz please? tnt è solo una riga di codice...

wingman87
26-11-2007, 17:03
Diciamo che così come l'hai scritta la funzione è completamente "sbagliata" o meglio senza senso.

Prova a riscriverla da capo, senza guardare quella che hai già, e rifletti bene su tre cose:
- cosa deve fare (il corpo della funzione)
- cosa le serve per fare quello che deve fare (i parametri)
- cosa restituisce (il return alla fine)

51078
26-11-2007, 19:07
Stai cercando di passare tre vettori ad una funzione e non puoi farlo in quel modo, nel senso che non puoi passare direttamente i loro valori ma devi passarli come riferimenti.

Inoltre la funzione Area che dichiari in fondo ha 1 solo argomento mentre in quella da te evidenziata vengono passati 3 argomenti.

In più se vuoi che la funzioni ritorni un intero che poi possa essere utilizzato nel main non puoi fare un return 0, semmai devi ritornare il risultato del calcolo.

Insomma come ti ha detto wingman87 è meglio se riprogetti il codice... ;)

pixie
26-11-2007, 20:44
mamma mia che casino....beh dai ci provo