Wielomiany - Horner

0

Czy mógł by ktoś sprawdzić poprawność działania tego kodu?
Program liczy wartość wielomianu schematem Hornera. Pozdrawiam.

 #include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int stopien,i,wartosc,tab[20],x;
  
printf("\nStopien wielomianu: ");
scanf("%d",&stopien);

printf("Podaj wspolczynnik x: ");
scanf("%d",&x);

i=0; 
  
/*Pętla odpowiedziala za wyświetlanie
odpowiedniej liczby argumentów wielomianu*/ 
for(i=0;i<stopien;i++)
{
     printf("Podaj kolejne argumenty: ");
     scanf("%d",&tab[i]);   
}
  
wartosc=tab[0];
  
/*Pętla wyliczająca odpowiednią wartość wielomianu*/
for(i=1;i<stopien;i++)
{
     wartosc=wartosc*x+tab[i];
}

printf("Wartosc wielomianu: %d",wartosc); 
  
  system("PAUSE>null");	
  return 0;
}
0

Wygląda poprawnie, poza tym, że brak kontroli wejścia -- podanie stopnia > 20 spowoduje access violation.

Dodatkowo mógłbyś zaznaczyć, że współczynniki podaje się z malejącymi wykładnikami, czyli wielomian podaje się jako an*xn + ... + a1*x + a0. Dość powszechny jest zapis odwrotny -- od wyrazu wolnego w kierunku rosnących potęg.

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