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

构造等差矩阵的C代码逻辑失效场景与错误原因排查

矩阵构造题代码错误排查

题目要求

构造元素均为正整数的N×M矩阵,满足以下规则:

  1. 若M>1,对于所有1≤i≤N,第i行从左到右严格递增,行内元素为固定公差d_i的等差数列
  2. 若N>1,对于所有1≤j≤M,第j列从上到下严格递增,列内元素为固定公差c_j的等差数列
  3. 所有公差(行公差d_i、列公差c_j)互不相同;若存在多组合法解,需构造最大元素尽可能小的矩阵

现有C语言实现

#include<stdio.h>
#include<stdlib.h>

int main(){
    int t=0,n=0,m=0,d=0;

    scanf("%d",&t);
    while(t--){
        scanf("%d%d",&n,&m);
        if(n>=m){
            d=2;
            for(int i=0;i<n;i++){
                for(int j=0;j<m;j++){
                    printf("%d ",(i+1) + j*d);
                }
                d+=2;
                printf("\n");
            }
        }
        else{
            d=1;
            for(int i=0;i<n;i++){
                for(int j=0;j<m;j++){
                   printf("%d ",(2*i+1) + j*d);
                }
                d+=2;
                printf("\n");
            }
        }
    }
    return 0;
}

官方样例

样例输入

3
3 3
1 2
1 1

样例输出

1 2 3
3 6 9
5 10 15
1 2
1

实现思路说明

当前代码的核心逻辑为:

  • 判断行数n和列数m的大小,维度更长的方向使用偶数值作为公差(从2开始依次取2,4,6……),维度更短的方向使用奇数值作为公差(从1开始依次取1,3,5……)
  • 以2×3输入为例,代码输出矩阵如下:
1  3
2  6
3  9

问题现象

代码可以通过给出的公开样例,但提交后始终无法通过隐藏测试用例,多次尝试定位代码失效场景未成功,需要找出逻辑错误点,并举出代码运行失败的具体测试用例。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:12:22