CodeBlocks如何设置输入全部内容后再统一输出结果?
解决输入完所有内容后统一输出结果的问题
你的代码当前会在每输入一组测试用例后立即输出结果,要实现输入完成后统一输出,核心思路是先把每个测试用例的结果存储起来,等所有输入处理完毕后再一次性输出。
修改后的代码
#include <stdio.h> int main(void) { int t, a, b, c; scanf("%d", &t); // 定义数组存储每个测试用例的结果 const char* results[t]; for (int i = 0; i < t; i++) { scanf("%d %d %d", &a, &b, &c); // 仅判断结果并存入数组,不立即输出 if (a + b == c || b + c == a || a + c == b) { results[i] = "YES"; } else { results[i] = "NO"; } } // 所有输入处理完成后,统一输出所有结果 for (int i = 0; i < t; i++) { printf("%s\n", results[i]); } return 0; }
关键改动说明
- 新增
const char* results[t]数组,用来保存每个测试用例的结果字符串("YES"或"NO")。 - 原循环中的
printf操作被替换为结果存入数组的逻辑,避免即时输出。 - 新增第二个循环,在所有输入处理完成后,遍历数组逐个输出结果。
如果你的C语言环境不支持变长数组(如遵循C89标准),可以改用动态内存分配或者预设一个合理的固定大小数组(比如const char* results[1000];,假设测试用例数不超过1000)。
内容的提问来源于stack exchange,提问作者Rikozz
相关产品推荐
相关产品推荐

