You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言数组循环程序部分测试用例运行异常,请求排查修复

问题背景与需求

该软件工具是一个文件仓库,通常存储计算机程序的源代码文件,并具备访问监控功能。源代码的每一次变更都会被追踪,包括变更者、变更原因,以及该变更修复的问题或引入的功能增强的相关参考。这类软件工具对于分布式协作开发至关重要。在本题中,我们采用简化的开发项目模型:项目含N个编号1~N的唯一源文件,工具维护两个序列——忽略序列(不在其中则为未忽略)、追踪序列(不在其中则为未追踪),需输出同时被追踪和忽略的源文件数,以及同时未被追踪和未被忽略的源文件数。

约束条件
  • 1 ≤ T ≤ 100
  • 1 ≤ M, K ≤ N ≤ 100
  • 1 ≤ A1 < A2 < ... < AM ≤ N
  • 1 ≤ B1 < B2 < ... < BK ≤ N
输入输出规则

输入

第一行是测试用例数T,每个测试用例含N、M、K三个整数,随后两行分别是严格递增的忽略序列A、追踪序列B

输出

每行输出两个整数,分别为同时被追踪和忽略的文件数、同时未被追踪和未被忽略的文件数

测试用例

正常测试用例

INPUT (STDIN)
2
7 4 6
1 4 6 7
1 2 3 4 6 7
4 2 2
1 4
3 4
EXPECTED OUTPUT
4 1
1 1

异常测试用例

INPUT (STDIN)
2
7 3 6
1 4 6 7
1 2 3 4 6 7
4 2 2
1 4
3 3
EXPECTED OUTPUT
3 1
2 3
强制要求
KEYWORD
int a[m],b[k]
KEYWORD
while
KEYWORD
for
复杂度指标
CYCLOMATIC COMPLEXITY
9
TOKEN COUNT
245
NLOC
31
提供的代码
#include <stdio.h>

int main() {
  int t, i;
  scanf("%d", &t);
  while (t--) {
    int n, m, k, c1 = 0, c2 = 0;
    scanf("%d%d%d", &n, &m, &k);
    int a[m], b[k], c[101];
    for (i = 0; i <= 101; i++)
      c[i] = 0;
    for (i = 0; i < m; i++) {
      scanf("%d", &a[i]);
      c[a[i]]++;
    }
    for (i = 0; i < k; i++) {
      scanf("%d", &b[i]);
      c[b[i]]++;
    }
    for (i = 0; i < 101; i++) {
      if (c[i] == 2) {
        c1++;
      }
    }
    for (i = 1; i <= n; i++) {
      if (c[i] == 0) {
        c2++;
      }
    }
    printf("%d %d\n", c1, c2);
  }
  return 0;
}
问题描述

现有上述C语言数组循环程序,在正常测试用例中运行符合预期,但在异常测试用例中运行结果不符合预期,请求排查问题原因并修复代码。


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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 10:53:13