Funkcja zwracająca wyniki poprzez parametry

0

Witam, jestem studentem I semestru Inf zaocznie. Mam problem z zadaniem ktorego tresc brzmi: Napisz funkcję void pole_obwod(float R, float *p, float *o), która obliczy i zwróci poprzez parametry pole i obwód koła o promieniu R..

Napisalem cos takieo:

#include <stdio.h>
#include <stdlib.h>
float *p,*o;
void pole_obwod(float R,float(*p),float(*o))
{ *o=2*3.14*R;
  *p=3.14*R*R;
  return (0);
}

int main()
{ float r;
r=0;
while (r<1)
    {printf("podaj promien kola: \n");
    scanf("%f",r);}
    pole_obwod(r,&p,&o);
    printf("pole wynosi: %f \n obwod wyosi: %f ",p,o);
    return 0;
}

Niestety nie dziala. Funkcje ktore zwracaja wartosc lub nic ida mi sprawnie a tu w tresci jest ze funkcja ma zwracac wynik dzialania poprzez parametr i nie lapie tego. Czy jest ktos kto moglby pokierowac mnie gdzie robie blad? Z gory dziekuje.

2

Zwracanie wyniku przez parametr to w żargonie C(++) „przyjmowanie wskaźnika do zmiennej, i operowanie na tej zmiennej”. Twoim pierwszym problemem (na tyle, ile udało mi się rozszyfrować z niesformatowanego kodu) jest tworzenie zmiennych po jako wskaźników na floaty, a nie floaty. Być może są i inne problemy, ale może to tylko to.

3

Linia trzecia: masz zmienne globalne, dodatkowo są to wskaźniki które na nic nie wskazują. Utwórz zmienne lokalne typu float w funkcji main i ich użyj

1

Dzieki wszystkim za tak szybka odpowiedz poprawione dziala :). Glownym problemem byl brak & przt wczytywaniu wartosci r.

1 użytkowników online, w tym zalogowanych: 0, gości: 1