You need to enable JavaScript to run this app. 新手仅用字符矩阵绘制x+y=n(n≤10)与坐标系的实现及异常排查
优惠活动
大模型
产品
解决方案
定价
更多

新手仅用字符矩阵绘制x+y=n(n≤10)与坐标系的实现及异常排查

字符矩阵绘制x+y=n函数线的编程问题
  • 提问者身份:编程新手
  • 核心实现目标:仅通过自定义字符矩阵完成绘制,不依赖任何额外函数、第三方库,支持n≤10场景下x+y=n的函数线展示,同时配套完整匹配的坐标轴体系
  • 现存代码异常:代码可正常编译运行,但x+y=n的函数线区域会出现无意义的预期外空格,和设计的显示效果不符

提问者编写的原始代码

#include <stdio.h>

int
main()
{
    int n, i, j;

    scanf("%d", &n);
    char m[12][63] = { " ", };
    for (i = 0; i < 12; i++) {
        for (j = 0; j < 63; j++) {
            m[i][j] = ' ';
            if (i == 0 && j == 1)
                m[i][j] = '0';
            if (i == 11 && j == 61)
                m[i][j] = '2';
            if (j == 0 && i != 0 && i != 11)
                m[i][j] = '0' + 10 - i;
            if (j == 2 && i != 11)
                m[i][j] = '+';
            if (i == 11 && j % 3 == 2)
                m[i][j] = '0' + ((j - 2) / 3) % 10;
            if (i == 11 && j % 3 == 1 && j > 29 && j < 59)
                m[i][j] = '1';
            if (i == 10 && j % 3 == 2)
                m[i][j] = '+';
        }
    }
     for(i=1;i<n+1;i++){
         if((10-n+i)!=10 && (2+3*i)!=1)
        m[10-n+i][2+3*i]='*';
        }
    m[0][0]='1';
    for (i = 0; i < 12; i++) {
        for (j = 0; j < 63; j++) {
            printf("%c", m[i][j]);
        }
        printf("\n");
    }
}

输入n=5时的实际运行输出效果

以下为程序输入n=5后在控制台打印的实际内容:

10+
 9 +
 8 +
 7 +
 6 +
 5 +
 4 +  *
 3 +     *
 2 +        *
 1 +           *
 0 +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +
   0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.10 16:54:02