我有两个char数组(两个[10] [10])并且我想比较第一个数组中的每个元素与另一个元素中的相同元素,如果它们相似则返回1。 阵列:
[1] "Atom.Type" and "Molar.Mass"
> Atom.Type
[1] "Oxygen" "Lithium" "Nitrogen" "Hydrogen"
> Molar.Mass
[1] 16 6.9 14 1
其中t:char t = -2; (提起的广场) 我正在尝试那样:
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, ' ', ' ' },
{ ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ', ' ', ' ' },
};
并在主要:
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]))
}
}
}
但它没有用,从char转换为* char存在一些问题,我不知道如何修复它。对于编码很多的人来说,这显然很明显,但我不是其中之一。
答案 0 :(得分:1)
@skarpet 您的答案将覆盖每次迭代的结果。尝试这样的事情:
bool warunek (char task[10][10], char solution[10][10])
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (task[i][j] != solution [i][j])
{
return false;
}
}
}
return true;
}
此外,您不必迭代到最后,因为它在第一个错配时停止。
答案 1 :(得分:0)
@GoodDeeds @善行 是的,我粘贴了错误的代码:
bool warunek (char task[10][10], char solution[10][10])
{
int result = 0;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (task[i][j] == solution [i][j])
{
result= 0;
} else
{
result= 1;
}
}
}
return result;
}
这是正确的(我的意思是代码,而不是逻辑,是否按预期工作)?