用C语言绘制矩阵

用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&

如何绘制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<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