C 如何比较两个多维数组
我有两个多维数组C 如何比较两个多维数组,c,C,我有两个多维数组 num[line][col] = { { '\0', '1', '\0', '\0', '\0' }, { '\0', '\0', '\0', '3', '\0' }, }; solution[line][col] = { { '5', '1', '3', '4', '2' }, { '4', '2', '5', '3', '1' },}; 我如何用num写? 2.如何比较num和解决方案
num[line][col] = {
{ '\0', '1', '\0', '\0', '\0' },
{ '\0', '\0', '\0', '3', '\0' },
};
solution[line][col] = {
{ '5', '1', '3', '4', '2' },
{ '4', '2', '5', '3', '1' },};
我如何用num写?
2.如何比较num和解决方案?
多谢各位
根据您的示例,我将这样做:
#include <stdio.h>
#define line 2
#define col 5
int main(void){
int num[line][col] = {
{ '1', '1', '1', '1', '1' },
{ '1', '1', '1', '1', '1' },
};
int solution[line][col] = {
{ '1', '1', '1', '1', '1' },
{ '1', '1', '1', '1', '1' },
};
for (size_t i = 0; i < line; ++i)
{
for (size_t j = 0; j < col; ++j)
{
if (num[i][j] != solution[i][j])
{
printf("Not equal\n");
return 1;
}
}
}
printf("are equal\n");
}
尝试使用memcmp比较num和解决方案:
使用memcmp…With?Down Voter请解释是的,我的也立即被否决了。@MDXF Get used你会在这里看到这些东西。哦,我习惯了。这种情况以前发生过。我不介意销售代表,我只是喜欢帮助别人和分享我的编程经验。但是否决票没有任何意义。我对在memcmp中把什么作为第三个论点不太肯定。如果10是错的,请随意纠正我。请不要表现得像个懦夫,并解释你的理由。你知道,我不介意投反对票,因为我不是一个众议员瘾君子,但我不明白我的解决方案出了什么问题。它回答了这个问题,简洁明了,并且使用了适当的编程技术。请解释一下,因为我不是一个推销员,嗯。。。。那你一开始就不应该回答这个问题。顺便说一句:不要硬编码10-sizeof要好得多。@4386427正是我的想法,但我想我宁愿硬编码也不要错误地使用sizeof。我如何在这种情况下使用它?
are equal
char num[line][col] = {
{ '\0', '1', '\0', '\0', '\0' },
{ '\0', '\0', '\0', '3', '\0' },
};
char solution[line][col] = {
{ '5', '1', '3', '4', '2' },
{ '4', '2', '5', '3', '1' }, };
int main(void)
{
printf("Comparing num[][] to solution[][]...\n");
int result = memcmp(num, solution, 10);
if (result != 0)
printf("Not equal.\n");
else
printf("Equal.\n");
return 0;
}