main.c 972 B
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
float r;
float d;
} dual;
dual dual_init(float r, float d) {
dual new;
new.r = r;
new.d = d;
return new;
}
dual dual_add(dual a, dual b) {
dual res;
res.r = a.r + b.r;
res.d = b.d + b.d;
return res;
}
dual dual_mult(dual a, dual b) {
dual res;
res.r = a.r * b.r;
res.d = a.r * b.d + a.d * b.r;
return res;
}
void dual_print(dual a) { printf("%.3f %.3f\n", a.r, a.d); }
dual dual_cube(dual a) {
dual res;
res.r = a.r * a.r * a.r;
res.d = 3 * a.d * a.r * a.r;
return res;
}
int main() {
int size = 2;
dual arr[size];
for (int i = 0; i < size; i++) {
float r;
float d;
scanf("%f %f", &r, &d);
arr[i] = dual_init(r, d);
}
printf("\n");
dual_print(dual_add(arr[0], arr[1]));
dual_print(dual_mult(arr[0], arr[1]));
dual_print(dual_cube(arr[0]));
return EXIT_SUCCESS;
}