You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

为何URI Online始终提示“Presentation Error”?C语言代码排障求助

解决URI Online Judge的Presentation Error问题

嘿,我一眼就揪出你代码里的问题啦!URI的Presentation Error十有八九是输出格式不符合要求,尤其是换行和输出细节,咱们来一步步修正:

核心问题:printf的换行符写法错误

你当前的printf语句把换行符"\n"当成了额外参数传递,但实际上换行符必须写在格式字符串内部,否则根本不会被输出。你的代码现在只会打印A=xxxx.xxxx,结尾完全没有换行,这直接触发了Presentation Error。

修正后的完整代码

#include <stdio.h>
#include <math.h>  // 必须包含这个头文件,pow函数依赖它!

int main () { 
    double R, PI, a; 
    PI = 3.14159; 
    scanf("%lf", &R); 
    a = PI * pow(R, 2);  // 外层括号可以去掉,不影响计算逻辑
    printf("A=%.4f\n", a);  // 把\n放进格式字符串,确保结尾强制换行
    return 0; 
}

额外注意事项

  • 别漏了<math.h>:很多人会忘记包含这个头文件,虽然部分编译器能侥幸通过,但URI的评测环境是严格的,缺少它可能导致编译错误或者运行异常。
  • 换行符用\n就够了:URI的评测系统基于类Unix环境,不需要\r\n,只要输出结尾有一个标准换行符就符合要求。
  • 格式符的小细节:%0.4f%.4f在这里效果一致,不过%.4f是更常用的保留n位小数的写法,可读性更强。

内容的提问来源于stack exchange,提问作者CH4B

火山引擎 最新活动