Как напечатать уравнение с правильными знаками в C - PullRequest
0 голосов
/ 19 октября 2018

По сути, я должен напечатать уравнение с правильными обозначениями на всех числах.мой текущий код:

printf("%dx^2+%dx+%d=0", a, b, c);

Учитывая, что у меня уже есть значения для a, b и c, я ожидал, что это сработает.Однако, отрицательные числа портят это, потому что если я установлю

a = 2, b = 2, c = -2

(только пример), он выведет

2x ^ 2 + 2 + -2 = 0

Это, очевидно, выглядит неправильно, так как я могу установить его так, чтобы знак плюс больше не былтам если это отрицательное число?Моя единственная идея состояла в том, чтобы убрать все знаки плюс, но тогда я бы получил

2x ^ 22-2 = 0

, что также не работает.Я знаю, что это может быть легко исправить, но я новичок в этом, и любая помощь будет оценена.спасибо.

1 Ответ

0 голосов
/ 19 октября 2018

Вы можете легко получить желаемый результат, используя printf флаговый символ '+'.Специально от man 3 printf:

Символы флага

+      A sign (+ or -) should always be placed before a number produced
       by  a  signed  conversion.   By default, a sign is used only for 
       negative numbers.  A + overrides a space if both are used.

Например:

#include <stdio.h>

int main (void) {

    int a = 2, b = 2, c = -2;

    printf ("%dx^2%+dx%+d = 0\n", a, b, c);
}

Пример использования / Вывод

$ ./bin/printfsign
2x^2+2x-2 = 0

Посмотрите на вещи и дайте мне знать, если это именно то, что вы хотели.

...