Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将包含char元素的二维数组的大小增加一倍_C - Fatal编程技术网

如何将包含char元素的二维数组的大小增加一倍

如何将包含char元素的二维数组的大小增加一倍,c,C,所以我想制作一个二维数组,如下所示: XX??XX?? XX??XX?? ??XX??XX ??XX??XX XX??XX?? XX??XX 为此: XXXX???XXXX???? XXXX???XXXX???? XXXX???XXXX???? XXXX???XXXX???? XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX???XXXX???? XXXX???XXXX???? XXXX???XXXX???? XXXX???XXXX 这就是我到目前为止所做

所以我想制作一个二维数组,如下所示: XX??XX?? XX??XX?? ??XX??XX ??XX??XX XX??XX?? XX??XX

为此: XXXX???XXXX???? XXXX???XXXX???? XXXX???XXXX???? XXXX???XXXX???? XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX???XXXX???? XXXX???XXXX???? XXXX???XXXX???? XXXX???XXXX

这就是我到目前为止所做的:

void DoubleUP(char Box1[6][8], char Box2[12][16]){
int i,j,r,c;
r=0;
c=0;


for(i=0;i<6;i++){
    for(j=0;j<8;j++){

        if(Box1[i][j]== 'X'){
            Box2[r][c]='X';
            Box2[r][c+1] ='X';
            Box2[r+1][c] ='X';
            Box2[r+1][c+1] ='X';
            c+=2;
        }
        else{
            Box2[r][c]='?';
            Box2[r][c+1] ='?';
            Box2[r+1][c] ='?';
            Box2[r+1][c+1] ='?';
            c+=2;
        }


    }
    r+=2;

}   

任何帮助都将不胜感激。或者,如果有一种更简单的方法可以让Box1以双倍的比例进入Box2,这也会有所帮助。谢谢。

您可以稍微缩短和概括一下代码,但您对如何做有正确的想法

for(i=0;i<6;i++){
    for(j=0;j<8;j++){
        Box2[2*i][2*j]=Box1[i][j];
        Box2[2*i][(2*j)+1]=Box1[i][j];
        Box2[(2*i)+1][2*j]=Box1[i][j];
        Box2[(2*i)+1][(2*j)+1]=Box1[i][j];
    }
}
void DoubleUP(char Box1[6][8], char Box2[12][16]){
int i,j,r,c;

    for (i=0, r=0; i<6; i++, r+=2) {
        for (j=0, c=0; j<8; j++, c+=2) {

            Box2[r][c]   = Box1[i][j];
            Box2[r][c+1] = Box1[i][j];
            Box2[r+1][c]  =Box1[i][j];
            Box2[r+1][c+1]=Box1[i][j];
        }
    }   
}

您可以稍微缩短和概括代码,但您对如何做有正确的想法

void DoubleUP(char Box1[6][8], char Box2[12][16]){
int i,j,r,c;

    for (i=0, r=0; i<6; i++, r+=2) {
        for (j=0, c=0; j<8; j++, c+=2) {

            Box2[r][c]   = Box1[i][j];
            Box2[r][c+1] = Box1[i][j];
            Box2[r+1][c]  =Box1[i][j];
            Box2[r+1][c+1]=Box1[i][j];
        }
    }   
}
对于循环:

for (i = 0; i < 12; i++) {
    for (j = 0; j < 16; j++) {
        Box2[i][j] = Box1[i / 2][j / 2];
    }
}
对于循环:

for (i = 0; i < 12; i++) {
    for (j = 0; j < 16; j++) {
        Box2[i][j] = Box1[i / 2][j / 2];
    }
}

使用适当命名的realloc函数进行分配,然后重新分配。请注意,数组在传递给函数时会衰减为指针,然后使用恰当命名的realloc函数进行分配和重新分配。请注意,数组在传递给函数时会衰减为指针。我也注意到了,谢谢。我也注意到了。