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