如何在C中用正确的符号打印方程式

时间:2018-10-19 03:35:42

标签: c algorithm sign

基本上,我必须在所有数字上打印带有正确符号的方程式。我当前的代码是:

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 :(得分:6)

您可以使用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

仔细研究一下,让我知道这是否是您想要的。