[ANSI C] Dzielenie wielomianów przez jednomian

0

Jak podzielić wielomiany przez jednomian podany jako dwie liczby: n a. Wielomian a0x0+a1x1+ ... +anxn zadany jest jako ciąg liczb n a0 a1 ... an, gdzie 0 <= n <= 1000 oraz an != 0, jeśli n > 0.
W wielomian 0 przechowuję wielość wielomianu. Co jest źle w tym kodzie.

for (int i=1; i<=wielomian1[0];i++){
          wynik[i]=(wielomian1[i+1]/wielomian2[1]);
          }
          printf("%1.0f ",wynik[0]);
{
0

wynik[0] - a jak to liczysz?
pomijasz wyraz wolny wielomian1[1]

0

wynik[0]=wielomian1[0]-(wielomian2[0]);

0

Tzn. chcesz podzielić a0+a1x1+ ... + anxn przez axn?

0

Własnie tak

0

To po Ci pętla? Wynik to, an/a. Chyba, że potrzebujesz również resztę z dzielenia.

0

Znaczy chce podzielić a0+a1x1+ ... + anxn przez bxm znaczy a w pierwszym wielomianie i a w drugi są różne tak samo jak n

0

To chyba tak:

if(wielomian2[0]>wielomian1[0])
{
    wynik[0]=0;
    wynik[1]=0;
}
else
{
    wynik[0]=wielomian1[0]-wielomian2[0];
    int m=wielomian2[0];
    for (int i=m; i<=wielomian1[0];i++)
    {
         wynik[i-m+1]=wielomian1[i]/wielomian2[1];
    }
}

(Dzielenie w tym wzorze jest całkowite, wynik będzie niepoprawny jeżeli tablice wielomian1, wielomian2 i wynik są typu int[]).

0

Wszystkie tablice sa typu double jednak dla 2 4 8 16 1 2 wynik wychodzi 1 2.00 4.00 a powinno byc 1 4.00 8.00

0

To może tak:

if(wielomian2[0]>wielomian1[0])
{
    wynik[0]=0;
    wynik[1]=0;
}
else
{
    wynik[0]=wielomian1[0]-wielomian2[0];
    int m=wielomian2[0];
    for (int i=m; i<=wielomian1[0];i++)
    {
         wynik[i-m+1]=wielomian1[i+1]/wielomian2[1];
    }
}

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