C zły wynik obliczeń [Rozwiązany]

C zły wynik obliczeń [Rozwiązany]
LA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

Witam użytkowników.

Jestem początkującym programistą w C, zabrałem się za napisanie w miarę prostego programu do liczenia powierzchni elementów montowanych w wentylacji, Tata ma malutką firmę i chcę trochę ułatwić życie sobie i jemu przy podliczaniu powierzchni położonych kanałów, kolan itp.

Problem leży tu: (((((3.14*((aa)+(rr))))/2)-((3.14*(rr))/2))+((23.14*(a+r)/4)b)+(((23.14*r)/4)b))/1000000
po wprowadzeniu a=1000, b=1000, r=130 dostaję wynik 3.55 a powinno być 3.96. Jak pewnie zauważycie na przykładach (r
r) miało to być potęgowanie ale uprościłem to do takiego zapisu. Pomoże ktoś roziązać to lub nakieruje gdzie szukać rozwiązania?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Na pierwszy ogień wziąłbym dzielenia. Np. to: (a+r)/4 bo widzisz dzielenie int/int daje inta. Więc 10/3 = 3 (i 1 reszty). Zamień te wszystkie stałe na liczby zmiennoprzecinkowe (poprzez dodanie .0).

LA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

zmienne są typu float

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

A jak wklepiesz ten kod do kalkulatora to jaki daje ci wynik?

LA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

3.5482

LA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

( ( ( ( ( 3 , 1 4 * ( G 1 6 + G 1 8 ) 2 ) ) / 2 ) - ( ( 3 , 1 4 * G 1 8 2 ) / 2 ) ) + ( ( 2 * 3 , 1 4 * ( G 1 6 + G 1 8 ) / 4 ) * G 1 7 ) + ( ( ( 2 * 3 , 1 4 * G 1 8 ) / 4 ) * G 1 7 ) ) / 1 0 0 0 0 0 0 To jest z arkusza kalkulacyjnego, G16 to jest a, G17 to b, G18 to r. W arkuszu po wprowadzeniu takich samych danych dostaję 3.96

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

No to podziel to na kawałki i zobacz co nie bangla ;]

SO
  • Rejestracja: dni
  • Ostatnio: dni
2

Już w pierwszym nawiasie masz błąd.

(a+b)2 to nie jest a2 + b2

LA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

Problem rozwiązany, jak zwykle takie nic a szkodzi, wielkie dzięki!

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.