#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void nhap(int *n, int *m, float **a, float **b){
scanf("%d %d", n, m);
*a = (float*)malloc((*n + 1) * sizeof(float));// (*n + 1) *(n + 1)
*b = (float*)malloc((*m + 1) * sizeof(float));
printf("Nhap he so P(x);\n");
for(int i = 0; i < *n + 1; i++)
{
printf("Nhap he so bac %d: ",i);
scanf("%f", (*a + i) );
}
printf("Nhap he so Q(x);\n");
for(int i = 0; i < *m + 1; i++)
{
printf("Nhap he so bac %d: ",i);
scanf("%f", (*b + i));
}
}
float ketQuaDaThuc(float *a, int bac, float x){
float res = 0;
for(int i = 0; i <= bac; i++){
res += a[i] * pow(x, i);
}
return res;
}
void tinhKetQua(float *d1, float*d2, float*a, float *b, int n, int m){
float res = 0;
printf("Nhap d1, d2: ");
scanf("%f %f", d1, d2);
res += ketQuaDaThuc(a, n, *d1) + ketQuaDaThuc(b, m, *d2);
printf("Ket qua cua S = %.2f\n", sqrt(res) - 2013);
}
int max(int a, int b){
if(a > b)
return a;
return b;
}
void heSoDaThucHieu(float*a, float *b, int n, int m){
int k = max(m, n);
float *c = (float*)malloc((k + 1) * sizeof(float));
for(int i = 0; i <= k; i++){
if(i > n){
c[i] = -b[i];
}
else if(i > m){
c[i] = a[i];
}
else{
c[i] = a[i] - b[i];
}
}
for(int i = 0; i <= k; i++){
printf("He so bac %d cua P(x) - Q(x) la: %.2f\n", i,c[i]);
}
}
int main (){
int n, m;
float *a, *b, d1, d2;
nhap(&n, &m, &a, &b);
tinhKetQua(&d1, &d2, a, b, n, m);
heSoDaThucHieu(a, b, n, m);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPG1hdGguaD4KCgp2b2lkIG5oYXAoaW50ICpuLCBpbnQgKm0sIGZsb2F0ICoqYSwgZmxvYXQgKipiKXsKCXNjYW5mKCIlZCAlZCIsIG4sIG0pOwoJKmEgPSAoZmxvYXQqKW1hbGxvYygoKm4gKyAxKSAqIHNpemVvZihmbG9hdCkpOy8vICgqbiArIDEpICAqKG4gKyAxKQoJKmIgPSAoZmxvYXQqKW1hbGxvYygoKm0gKyAxKSAqIHNpemVvZihmbG9hdCkpOwoJCglwcmludGYoIk5oYXAgaGUgc28gUCh4KTtcbiIpOwoJZm9yKGludCBpID0gMDsgaSA8ICpuICsgMTsgaSsrKQoJewoJCXByaW50ZigiTmhhcCBoZSBzbyBiYWMgJWQ6ICIsaSk7CgkJc2NhbmYoIiVmIiwgICgqYSArIGkpICk7Cgl9CglwcmludGYoIk5oYXAgaGUgc28gUSh4KTtcbiIpOwoJZm9yKGludCBpID0gMDsgaSA8ICptICsgMTsgaSsrKQoJewoJCXByaW50ZigiTmhhcCBoZSBzbyBiYWMgJWQ6ICIsaSk7CgkJc2NhbmYoIiVmIiwgKCpiICsgaSkpOwoJfQp9CgpmbG9hdCBrZXRRdWFEYVRodWMoZmxvYXQgKmEsIGludCBiYWMsIGZsb2F0IHgpewoJZmxvYXQgcmVzID0gMDsKCQoJZm9yKGludCBpID0gMDsgaSA8PSBiYWM7IGkrKyl7CgkJcmVzICs9IGFbaV0gKiBwb3coeCwgaSk7Cgl9CgkKCXJldHVybiByZXM7Cn0KCnZvaWQgdGluaEtldFF1YShmbG9hdCAqZDEsIGZsb2F0KmQyLCBmbG9hdCphLCBmbG9hdCAqYiwgaW50IG4sIGludCBtKXsKCWZsb2F0IHJlcyA9IDA7CglwcmludGYoIk5oYXAgZDEsIGQyOiAiKTsKCXNjYW5mKCIlZiAlZiIsIGQxLCBkMik7CgkKCXJlcyArPSBrZXRRdWFEYVRodWMoYSwgbiwgKmQxKSArIGtldFF1YURhVGh1YyhiLCBtLCAqZDIpOwoJCglwcmludGYoIktldCBxdWEgY3VhIFMgPSAlLjJmXG4iLCBzcXJ0KHJlcykgLSAyMDEzKTsKfQppbnQgbWF4KGludCBhLCBpbnQgYil7CglpZihhID4gYikKCQlyZXR1cm4gYTsKCXJldHVybiBiOwp9CnZvaWQgaGVTb0RhVGh1Y0hpZXUoZmxvYXQqYSwgZmxvYXQgKmIsIGludCBuLCBpbnQgbSl7CglpbnQgayA9IG1heChtLCBuKTsKCQoJZmxvYXQgKmMgPSAoZmxvYXQqKW1hbGxvYygoayArIDEpICogc2l6ZW9mKGZsb2F0KSk7Cglmb3IoaW50IGkgPSAwOyBpIDw9IGs7IGkrKyl7CgkJaWYoaSA+IG4pewoJCQljW2ldID0gLWJbaV07CgkJfQoJCWVsc2UgaWYoaSA+IG0pewoJCQljW2ldID0gYVtpXTsKCQl9CgkJZWxzZXsKCQkJY1tpXSA9IGFbaV0gLSBiW2ldOwoJCX0KCX0KCQoJZm9yKGludCBpID0gMDsgaSA8PSBrOyBpKyspewoJCXByaW50ZigiSGUgc28gYmFjICVkIGN1YSBQKHgpIC0gUSh4KSBsYTogJS4yZlxuIiwgaSxjW2ldKTsKCX0KfQppbnQgbWFpbiAoKXsKCWludCBuLCBtOwoJZmxvYXQgKmEsICpiLCBkMSwgZDI7CgluaGFwKCZuLCAmbSwgJmEsICZiKTsKCXRpbmhLZXRRdWEoJmQxLCAmZDIsIGEsIGIsIG4sIG0pOwoJaGVTb0RhVGh1Y0hpZXUoYSwgYiwgbiwgbSk7Cn0=