C 布尔西矩阵图

C 布尔西矩阵图,c,C,我希望你能帮我解决这个问题。所以我想创建一个矩阵,它的设计看起来像一个目标,用1填充正方形或矩阵的边界,在一个同心正方形0之后,另一个同心正方形用1填充,然后继续,在你选择正方形矩阵的尺寸之后(如果我扫描3,矩阵将是一个3x3)。问题在于同心1,我不知道打印它们的条件。你能帮助我吗?我应该是这样的: 这就是我到现在为止所做的 #include <stdio.h> void rellenarMatrizdiana(int filas, int cols,int diana[cols]

我希望你能帮我解决这个问题。所以我想创建一个矩阵,它的设计看起来像一个目标,用1填充正方形或矩阵的边界,在一个同心正方形0之后,另一个同心正方形用1填充,然后继续,在你选择正方形矩阵的尺寸之后(如果我扫描3,矩阵将是一个3x3)。问题在于同心1,我不知道打印它们的条件。你能帮助我吗?我应该是这样的:

这就是我到现在为止所做的

#include <stdio.h>
void rellenarMatrizdiana(int filas, int cols,int diana[cols][cols]);
int main()
{
    int diana[500][500], tdiana;
    printf("Selecciona el tamaño de la diana: ");
    scanf("%d", &tdiana);
    rellenarMatrizdiana(tdiana,tdiana,diana);
}
void rellenarMatrizdiana(int filas, int cols,int diana[cols][cols]){


    for(int f=0; f<filas; f++){
        for(int c=0; c<cols; c++){

            if (f==0||f==filas-1||c==0||c==cols-1){
                diana[f][c]=1;

            }else{
                diana[f][c]=0;
            }

            printf("%d\t", diana[f][c]);

        }
        printf("\n");
    }
}
#包括
void rellenarMatrizdiana(int filas、int cols、int diana[cols][cols]);
int main()
{
国际戴安娜[500][500],tdiana;
printf(“黛安娜之夜”);
scanf(“%d”和&tdiana);
雷勒纳马特里兹迪亚纳(蒂迪亚娜,蒂迪亚娜,黛安娜);
}
void rellenarMatrizdiana(int filas,int cols,int diana[cols][cols]){
对于(int f=0;f
#包括
#包括
#定义填充的“X”
无效打印诊断(int N){

如果(NIts西班牙语,diana代表目标,filas代表行,tdiana代表目标的大小,rellenar matriz diana代表填充目标矩阵)您是否可以编辑您的问题,包括所需的文本输出,而不是链接图像(我发誓,我试图滚动该图像…)也可以考虑将发布的代码中的名字翻译成英文。<代码>戴安娜< /COD> <代码> > ReleLARMATRIZIDEANA < /代码>与<代码>戴安娜<代码>的尺寸不匹配,在<代码>主< /代码>中,无论如何,关于您的问题,您能看到目标模式的SimoTrices吗?有两个对角线划分一个空间Fi。交替使用*或空格的行和列填充。这在我看来像是一个递归问题。我建议实现一个行打印函数。对于大于4的大小,递归调用此函数。with(size-4)
#include <stdio.h>
void rellenarMatrizdiana(int filas, int cols,int diana[cols][cols]);
int main()
{
    int diana[500][500], tdiana;
    printf("Selecciona el tamaño de la diana: ");
    scanf("%d", &tdiana);
    rellenarMatrizdiana(tdiana,tdiana,diana);
}
void rellenarMatrizdiana(int filas, int cols,int diana[cols][cols]){

    int f = 0;
    printf("\n");
    for(int k=1; k<=filas; k++){

        if(filas%2==0){
            if(k<=filas/2) 
                f++;
            if(k>filas/2+1) 
                f--;
        } else {
            k<=(filas+1)/2?f++:f--;
        }

        for(int c=1; c<=cols; c++){

            if ((f%2==1 &&  (c>=f && c<=filas+1-f)) || ((c%2==1 && c<=f) || (c%2==filas%2 && c>=filas+2-f))){
                diana[f][c]=1;
            } else{
                diana[f][c]=0;
            }

            printf("%d\t", diana[f][c]);
        }
        printf("\n");
    }
}
N:1
1

N:2
1   1   
1   1

N:3
1   1   1   
1   0   1   
1   1   1

N:4
1   1   1   1   
1   0   0   1   
1   0   0   1   
1   1   1   1

N:5
1   1   1   1   1   
1   0   0   0   1   
1   0   1   0   1   
1   0   0   0   1   
1   1   1   1   1

N:6
1   1   1   1   1   1   
1   0   0   0   0   1   
1   0   1   1   0   1   
1   0   1   1   0   1   
1   0   0   0   0   1   
1   1   1   1   1   1

N:7
1   1   1   1   1   1   1   
1   0   0   0   0   0   1   
1   0   1   1   1   0   1   
1   0   1   0   1   0   1   
1   0   1   1   1   0   1   
1   0   0   0   0   0   1   
1   1   1   1   1   1   1

N:8
1   1   1   1   1   1   1   1   
1   0   0   0   0   0   0   1   
1   0   1   1   1   1   0   1   
1   0   1   0   0   1   0   1   
1   0   1   0   0   1   0   1   
1   0   1   1   1   1   0   1   
1   0   0   0   0   0   0   1   
1   1   1   1   1   1   1   1
N=0:

N=1:
X

N=2:
XX
XX

N=3:
XXX
X X
XXX

N=4:
XXXX
X  X
X  X
XXXX

N=5:
XXXXX
X   X
X X X
X   X
XXXXX

N=6:
XXXXXX
X    X
X XX X
X XX X
X    X
XXXXXX

N=7:
XXXXXXX
X     X
X XXX X
X X X X
X XXX X
X     X
XXXXXXX

N=8:
XXXXXXXX
X      X
X XXXX X
X X  X X
X X  X X
X XXXX X
X      X
XXXXXXXX

N=9:
XXXXXXXXX
X       X
X XXXXX X
X X   X X
X X X X X
X X   X X
X XXXXX X
X       X
XXXXXXXXX

N=10:
XXXXXXXXXX
X        X
X XXXXXX X
X X    X X
X X XX X X
X X XX X X
X X    X X
X XXXXXX X
X        X
XXXXXXXXXX

N=11:
XXXXXXXXXXX
X         X
X XXXXXXX X
X X     X X
X X XXX X X
X X X X X X
X X XXX X X
X X     X X
X XXXXXXX X
X         X
XXXXXXXXXXX

N=12:
XXXXXXXXXXXX
X          X
X XXXXXXXX X
X X      X X
X X XXXX X X
X X X  X X X
X X X  X X X
X X XXXX X X
X X      X X
X XXXXXXXX X
X          X
XXXXXXXXXXXX