我正在编写一个程序,需要检查一行中的两个单元格是否相同。我有一个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");
}
}