C语言 简单的方法来检查邻近的数组



我正在编写一个程序,需要检查一行中的两个单元格是否相同。我有一个5 × 5的二维数组板,里面的字符可以是x, y, z,有什么建议吗?到目前为止,我正在考虑创建一个条件并将其放入循环

if(arr[0][0] == 'z' && arr[0][1] == 'z'{
    //replace with an a
}

如果相邻的单元格是相同的,我想把它改成a

循环中的条件应该类似于

arr[i][j] == arr[i][j+1]

并且注意不要超出数组的边界

下面是一个例子

void compare( char array[5][5])
{
    int x,y;
    for(x=0;x<4;  x++)
    {
        for(y=0;y<4;  y++)
        { 
            if (array[x][[y] == array[x][y+1] )
            {
                //do something
            }
            if (array[x][[y] == array[x+1][y] )
            {
                //do something
            }
        }
    }
}

对不起,格式不好。我正在用我的诺基亚c3-00手机,格式化不简单

我建议您在创建板的数据时创建以免与相邻的单元格重叠。
像这样:

#include <stdio.h>
#include <string.h>
#include <time.h>
#define ROW 5
#define COL 5
char Board[ROW][COL];
void createBoard(void);
int main(void){
    srand(time(NULL));
    createBoard();
    return 0;
}
void swap(char *a, char *b){
    char tmp = *a;
    *a=*b;
    *b=tmp;
}
void createBoard(void){
    char letter[3] = {'x', 'y', 'z'};
    int i, j, k;
    for(i=0; i < ROW; ++i){
        for(j=0,k=3; j < COL; ++j){
            if(j!=0){
                k = 2;
                swap(strchr(letter, Board[i][j-1]), &letter[2]);
            }
            Board[i][j] = letter[rand()%k];
        }
    }
    for(i=0; i < ROW; i++){
        for(j=0; j < COL; j++){
            printf("%c ", Board[i][j]);
        }
        printf("n");
    }
}

相关内容

  • 没有找到相关文章

最新更新