【发布时间】:2016-12-02 14:29:47
【问题描述】:
我有两个 char 数组(都是 [10][10]),我想将第一个数组中的每个元素与另一个数组中的相同元素进行比较,如果它们相似则返回 1。 数组:
char task [10][10] = {
{ ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ', ' ', ' ' },
{ ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ', ' ', ' ' },
{ ' ', ' ', ' ', ' ', ' ', t,' ', ' ', ' ', ' ' },
{ ' ', ' ', ' ', t, ' ', ' ',t, ' ', ' ', ' ' },
{ ' ', ' ', t, t, t, t,t, t, ' ', ' ' },
{ ' ', ' ', t, ' ', ' ', ' ',' ', t, ' ', ' ' },
{ ' ', ' ', t, ' ', ' ', ' ',' ', t, ' ', ' ' },
{ ' ', ' ', t, ' ', ' ', ' ',' ', t, ' ', ' ' },
{ ' ', ' ', t, t, t, t,t, t, ' ', ' ' },
{ ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ', ' ', ' ' },
};
char solution [10][10] = {
{ ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ', ' ', ' ' },
{ ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ', ' ', ' ' },
{ ' ', ' ', ' ', ' ', t, t,' ', ' ', ' ', ' ' },
{ ' ', ' ', ' ', t, ' ', ' ',t, ' ', ' ', ' ' },
{ ' ', ' ', t, t, t, t,t, t, ' ', ' ' },
{ ' ', ' ', t, ' ', ' ', ' ',' ', t, ' ', ' ' },
{ ' ', ' ', t, ' ', ' ', ' ',' ', t, ' ', ' ' },
{ ' ', ' ', t, ' ', ' ', ' ',' ', t, ' ', ' ' },
{ ' ', ' ', t, t, t, t,t, t, ' ', ' ' },
{ ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ', ' ', ' ' },
};
其中 t: char t = -2; (归档广场) 我是这样尝试的:
bool cond (char task[10][10], char solution[10][10])
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (strcmp(task[i][j], solution[i][j]))
}
}
}
主要是:
do
{
XxX(zadanie);
wpisz(kolor,w1,w2,zadanie,t);
}
while (!cond(task,solution));
cout << "Solved";
但它不起作用,从 char 转换为 *char 存在一些问题,我不知道如何解决它。可能对于编写很多代码的人来说很明显,但我不是其中之一..
【问题讨论】:
-
你的函数返回类型是
bool,但它什么也没返回。 -
您不要将单个字符与
strcmp进行比较,只需使用==。if (task[i][j] == solution [i][j])。编辑:对不起,只是错误地复制了您的原件! -
也在尝试,但仍然无法正常工作,所以我不确定这种比较两个字符的方式是否正确。如果是我会继续寻找代码中的逻辑错误