Co to za typ danych?

SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 120
0

Mam napisać funkcję, ale nie wiem co przyjmuje w argumentach tzn.

Kopiuj
bool analizuj_trojkat(int a, int b, int c, float *obwod, float *pole)

Argument wejściowy dla:

Kopiuj
float* obwod i float * pole

-> to wskaźnik czy co?

Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
0

No wskaźnik.

SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 120
0

To jak niby mam przekazać ten obwód? Zdefiniować wskaźnik, przypisać adres zmiennej typu float wskaźnikowi, dostarczyć go do funkcji i w funkcji posługiwać się:

Kopiuj
*wskaznik=(a+b+c)

tak?

twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
0
Kopiuj
float obwod = a + b + c; 
float pole = ...
analizuj_trojkat(a, b, c, &obwod, &pole);

Ale stawiam piwo, że te wskaźniki nie są tam potrzebne i można lepiej tę funkcję napisać.

SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 120
0
twonek napisał(a):

Ale stawiam piwo, że te wskaźniki nie są tam potrzebne i można lepiej tę funkcję napisać.

Czyli teraz zwracamy przez referencję? Wskaźniki nie są moim wymysłem, ale profesora.

Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
2

Strzelam, że najpierw funkcja ma sprawdzić czy a, b i c mogą utworzyć trójkąt (a więc min(a,b,c) + med(a,b,c) < max(a,b,c)), a następnie obliczyć pole i obwód i zapisać pod podanymi adresami. Na końcu ma zwrócić wartość logiczną informującą czy z danych boków da się utworzyć trójkąt. To jest mój domysł.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.