добавил красивую печать полиномов
parent
d09a25663a
commit
fc2e46a654
|
@ -144,18 +144,32 @@ void free_polynomial(Polynomial *p) {
|
||||||
// Печать полинома
|
// Печать полинома
|
||||||
void print_polynomial(Polynomial *p) {
|
void print_polynomial(Polynomial *p) {
|
||||||
if (p->size == 0) {
|
if (p->size == 0) {
|
||||||
printf("0\n"); return;
|
printf("0\n");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < p->size; i++) {
|
for (int i = 0; i < p->size; i++) {
|
||||||
// Печать знака
|
Term term = p->terms[i];
|
||||||
if (p->terms[i].coefficient > 0) { printf("+");
|
|
||||||
} else { printf("-"); }
|
// Печать знака (не печатаем '+' перед первым слагаемым)
|
||||||
// Печать коэффициента
|
if (i != 0 || term.coefficient < 0) {
|
||||||
printf("%d", abs(p->terms[i].coefficient));
|
printf("%c", term.coefficient > 0 ? '+' : '-');
|
||||||
// Печать переменной и степени
|
}
|
||||||
if (p->terms[i].exponent > 0) {
|
|
||||||
printf("x^%d", p->terms[i].exponent);
|
// Печать коэффициента (если не 1/-1 или если степень 0)
|
||||||
|
if (abs(term.coefficient) != 1 || term.exponent == 0) {
|
||||||
|
printf("%d", abs(term.coefficient));
|
||||||
|
} else if (term.coefficient == -1 && term.exponent != 0) {
|
||||||
|
printf("-"); // Специальный случай для -x^n
|
||||||
|
}
|
||||||
|
|
||||||
|
// Печать переменной
|
||||||
|
if (term.exponent > 0) {
|
||||||
|
printf("x");
|
||||||
|
// Печать степени только если она больше 1
|
||||||
|
if (term.exponent > 1) {
|
||||||
|
printf("^%d", term.exponent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
Loading…
Reference in New Issue