如何将包含char元素的二维数组的大小增加一倍
所以我想制作一个二维数组,如下所示: 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 这就是我到目前为止所做的:如何将包含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 这就是我到目前为止所做
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函数进行分配和重新分配。请注意,数组在传递给函数时会衰减为指针。我也注意到了,谢谢。我也注意到了。