C, reszta z dzielnia, schemat Hornera
Ostatnio zmodyfikowano 2015-11-13 20:18
melek94 Temat założony przez niniejszego użytkownika |
C, reszta z dzielnia, schemat Hornera » 2015-11-13 18:29:34 Witam, funkcja ma liczyć wartość wielomianu trzeciego stopnia od wprowadzanego argumentu(x). Gdzieś musi być błąd, którego nie jestem w stanie samodzielnie wykryć. Dla danych [x=2 , x^3 = 1 , x^2 = -4 , x^1 = 3 , a0 = -5] Funkcja zwraca -3 zamiast -7. Proszę o pomoc. #include <stdio.h> #include <stdlib.h> int horner( int x ) { int i = 0, wsp[ 3 ], wynik; printf( "Wprowadz wspolczynnik przy x^3:\n" ); scanf( "%d", & wsp[ 0 ] ); printf( "Wprowadz wspolczynnik przy x^2:\n" ); scanf( "%d", & wsp[ 1 ] ); printf( "Wprowadz wspolczynnik przy x^1:\n" ); scanf( "%d", & wsp[ 2 ] ); printf( "Wprowadz wyraz wolny:\n" ); scanf( "%d", & wsp[ 3 ] ); wynik = wsp[ 0 ]; for( i = 0; i < 3; i++ ) { wynik = wynik * x + wsp[ i + 1 ]; } return wynik; } int main() { int x; printf( "Wprowadz liczbe...SRATATATATATA:\n" ); scanf( "%d", & x ); printf( "Wynik = %d", horner( x ) ); return 0; }
|
|
melek94 Temat założony przez niniejszego użytkownika |
» 2015-11-13 18:59:51 Z tego co udało mi się ustalić coś się sypie podczas ostatniego wykonywania tej pętli. 1sze wykonanie: 1*2 - 4 = -2 wynik po 1 wykonaniu -2. 2gie wykonanie: -2*2 + 3 = -1 wynik po 2 wykonaniu -1. 3cie wykonanie: -1*2 + (-5) = -7 wynik po 3 wykonaniu -3 załączam jeszcze screena: http://screenshooter.net/102699576/amtradh Prosze o pomoc |
|
Monika90 |
» 2015-11-13 19:47:45 tablica jest za mała |
|
melek94 Temat założony przez niniejszego użytkownika |
» 2015-11-13 20:08:21 Faktycznie dla 6 elementowej tablicy funkcja zwraca prawidłowy wynik, jednak dalej nie rozumiem dlaczego 4 elementowa tablica okazałą się być za małą.
|
|
Monika90 |
» 2015-11-13 20:13:08 int wsp[3]; ta tablica ma trzy elementy |
|
melek94 Temat założony przez niniejszego użytkownika |
» 2015-11-13 20:18:03 <facepalm> dzieki za pomoc |
|
« 1 » |