为什么URI Online总是给我“演示错误”

时间:2018-04-02 18:53:19

标签: c printf

大多数时候我使用C ++来处理URI Online问题,但这次我需要使用C. 我已经解决了计算部分,但URI不断给我经典的“演示错误问题”。 我知道我必须在最后打破这一行,但\n\r\n或其他任何东西似乎都无法解决这个问题。 这是我的代码:

int main () {

    double R,PI,a;
    PI = 3.14159;
    scanf("%lf", &R);
    a = PI * (pow(R,2));
    printf ("A=%0.4f", a, "\n");
    return 0;

}

1 个答案:

答案 0 :(得分:0)

你误解了printf是如何运作的。它不会像你习惯于std::cout << … << …;那样连接你投入的所有东西,而是主要打印第一个参数,即格式字符串。后一个参数仅在格式字符串请求它们时才起作用,就像对第二个参数使用%0.4f一样。但是,第三个未使用。你可以像这样解决它:

printf("A=%0.4f%s", a, "\n");

或者,更像是惯用语,如下:

printf("A=%0.4f\n", a);

顺便说一下,至少我的gcc警告我:

  

main.c:在函数'main'中:
  main.c:...:警告:格式参数太多[-Wformat-extra-args]
    printf(“A =%0.4f”,a,“\ n”);