新手仅用字符矩阵绘制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
相关产品推荐
相关产品推荐

