C语言怎样比较两个int型数组中的数是不是一模一样? 5
int型数组不能用strcmp比较吧?求大神解答,我现在要比较两个int型数组中的数是不是一样的,不知道怎么比较,知道的告诉我以下吧,谢谢了...
int型数组不能用strcmp比较吧?求大神解答,我现在要比较两个int型数组中的数是不是一样的,不知道怎么比较,知道的告诉我以下吧,谢谢了
展开
展开全部
函数原型
int memcmp(const void *buf1, const void *buf2, unsigned int count);
功能:比较内存区域buf1和buf2的前count个字节。
所需头文件
#include <string.h>或#include<memory.h>
返回值
当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0
假设数组声明
int a[20];
int b[20];
// 中间为数组赋值过
if (!memcmp(a,b,sizeof(int)*20)) {
// 数组相同
}
int memcmp(const void *buf1, const void *buf2, unsigned int count);
功能:比较内存区域buf1和buf2的前count个字节。
所需头文件
#include <string.h>或#include<memory.h>
返回值
当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0
假设数组声明
int a[20];
int b[20];
// 中间为数组赋值过
if (!memcmp(a,b,sizeof(int)*20)) {
// 数组相同
}
展开全部
/* i 代表1 ~ 9 数字,可以用你想要的数组代替 */
/*a[j] 你要验证是否存在1 ~ 9的数组*/
bool bRight = true;
int a[9] = {1,2,3,4,5,6,7,8,9};
int b[9] = {2,4,3,1,7,9,5,8,6};
for(int i=0;i<9;i++)
{
for(int j=0;j<9;j++)
{
if(a[i] != -1 && b[j] == a[i])
{
a[i] = -1; //将出现过的数字拉黑,防止相同值重复判断
break;
}
if(j == 8)
{
bRight = false;
cout << "没有数字<" <<a[i]<<">"<<endl;
}
}
}
if(bRight ) cout << "相同" <<endl;
else cout << "不相同" <<endl;
/*a[j] 你要验证是否存在1 ~ 9的数组*/
bool bRight = true;
int a[9] = {1,2,3,4,5,6,7,8,9};
int b[9] = {2,4,3,1,7,9,5,8,6};
for(int i=0;i<9;i++)
{
for(int j=0;j<9;j++)
{
if(a[i] != -1 && b[j] == a[i])
{
a[i] = -1; //将出现过的数字拉黑,防止相同值重复判断
break;
}
if(j == 8)
{
bRight = false;
cout << "没有数字<" <<a[i]<<">"<<endl;
}
}
}
if(bRight ) cout << "相同" <<endl;
else cout << "不相同" <<endl;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个个比较,差不多这样
int cmp()
{
int i;
for(i = 0;i < size;i++)
{
if(a[i] != b[i])
return 1;
}
}
追问
这样很麻烦的样子啊,要是有一个元素不相同就返回1啊?而且我的数组并不是已经排好大小顺序的呢。
其实我现在主要是想判断一个int型数组里是不是刚刚好是1~9这9个数字在里面,我就向定义一个数组a[9]={1,2,3,4,5,6,7,8,9},然后再跟我要判断的那个数组进行比较,可是我不知道怎么比较。请详细解答。(也可以提供另外一种方法给我判断那个数组中是否包含1~9这9个数字),谢谢
追答
不知道你要表达什么,,已经尽量揣测你的意思了
int a[size];
int b[cmpszie]; /*cmp array*/
for(i = 0;i < size;i++)
{
for(j = 0 ;j < cmpsize;j++)
if(a[i] == b[j])
/**do something**/
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单的加个循环判断就可以了
追问
请详细点哈,其实我现在主要是想判断一个int型数组里是不是刚刚好是1~9这9个数字在里面,我就向定义一个数组a[9]={1,2,3,4,5,6,7,8,9},然后再跟我要判断的那个数组进行比较,可是我不知道怎么比较。请详细解答。(也可以提供另外一种方法给我判断那个数组中是否包含1~9这9个数字),谢谢
追答
for(int i = 0 ; i < 9 ;) {
if(a[i] == i+1 ){
i++;
}else b ;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询