用C语言绘制矩阵
如何绘制n不大于10的函数x+y=n以及仅使用矩阵而不使用任何函数或库的坐标系?我是初学者,希望你能帮助我用C语言绘制矩阵,c,matrix,C,Matrix,如何绘制n不大于10的函数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&
#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]='+';
if(j==3*(n+i-10) && i>2 && j>2) m[i][j]='*';
}
}
for(i=0;i<12;i++){
for(j=0;j<63;j++){
printf("%c", m[i][j]);
} printf("\n");
}
}
//my code doesn't print the correct result(the coordinate system is correct except that it prints 0+ instead of 10+ on y axis and x+y=n is not correct
0+
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
#包括
int main(){
int n,i,j;
scanf(“%d”和“&n”);
字符m[12][63]={''};
对于(i=0;i2)m[i][j]='*';
}
}
对于(i=0;i我不知道您在这些条件下尝试了什么。检查这个
#include <stdio.h>
#include <string.h>
#define N 100
int main() {
int n;
char m[N][N];
while( scanf("%d", &n) != 1 && n > (N-1)/2 );
memset(m, ' ', N*N);
for(int i = 0; i < n-1; i++) {
m[i][0] = '*';
m[i][i] = '*';
}
for(int i = 0; i < (n-1)*2; i++) m[n-1][i] = '*';
for(int i = 0; i < n; i++) {
for(int j = 0; j < (n-1)*2; j++) printf("%c", m[i][j]);
puts("");
}
return 0;
}
#包括
#包括
#定义N 100
int main(){
int n;
字符m[N][N];
而(scanf(“%d”,&n)!=1&&n>(n-1)/2);
memset(m',N*N);
对于(int i=0;i
该程序可以改进,它会浪费大量内存并打印大量不必要的空格。请尝试通过减少矩阵中未使用的部分来改进它。这样,您也可以减少不必要的打印。我不知道您在这些情况下尝试了什么。请检查此项
#include <stdio.h>
#include <string.h>
#define N 100
int main() {
int n;
char m[N][N];
while( scanf("%d", &n) != 1 && n > (N-1)/2 );
memset(m, ' ', N*N);
for(int i = 0; i < n-1; i++) {
m[i][0] = '*';
m[i][i] = '*';
}
for(int i = 0; i < (n-1)*2; i++) m[n-1][i] = '*';
for(int i = 0; i < n; i++) {
for(int j = 0; j < (n-1)*2; j++) printf("%c", m[i][j]);
puts("");
}
return 0;
}
#包括
#包括
#定义N 100
int main(){
int n;
字符m[N][N];
而(scanf(“%d”,&n)!=1&&n>(n-1)/2);
memset(m',N*N);
对于(int i=0;i
该程序可以改进,它会浪费大量内存并打印大量不必要的空格。尝试通过减少矩阵中未使用的部分来改进它。这样,您也可以减少不必要的打印。但是,我实际上需要用加号和数字来绘制图片,图片中的所有内容都应该在我的结果中dify程序我需要把从1到19的数字一个一个地写下来,然后把它们放到矩阵中,还是有更快的方法?我的意思是,我需要把m[0][1]=1…一个一个地写出来吗?不,你不需要。只需使用索引I
。对于这种特殊情况m[I][0]=i+1
应该可以。0
表示第一列,而i
则沿行切换。只要玩一下,对这个行/列系统充满信心,一切都会好起来的。我以前试过,但我得到了一些问号和很多数字。但是,我实际上需要用加号和麻木来画图片呃,图片中的所有内容都应该包含在我的结果中只要修改程序,我可以一个接一个地把数字从1写到19,然后把它们放到矩阵中,还是有更快的方法?我的意思是,我必须一个接一个地写m[0][1]=1吗?不,你不必这样做。只需使用索引I
。对于这种特殊情况m[I][0]=i+1
应该可以。0
表示第一列,而i
则沿行切换。只要玩一下,对这个行/列系统充满信心,一切都会好起来。我以前试过,但我得到了一些问号和很多数字m[j][i]中的x
是什么=x-1;
?在m[j][i]=x-1;
中什么是x
?