我正在编写一个程序,需要检查一行中的两个单元格是否相同。我有我的5乘5 2d阵列板充满了可以是x,y,z的字符。关于如何做到这一点的任何建议。截至目前,我正在考虑创建条件并将其置于循环中
if(arr[0][0] == 'z' && arr[0][1] == 'z'{
//replace with an a
}
如果相邻单元格相同,我希望它更改为a
答案 0 :(得分:1)
循环中的条件应该类似于
arr[i][j] == arr[i][j+1]
小心不要超出阵列的范围。
答案 1 :(得分: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手机,格式化并不简单
答案 2 :(得分:0)
我建议您创建,以便在创建电路板数据时不与相邻单元格重叠 像这样:
#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");
}
}