C语言怎样比较两个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)) {
// 数组相同
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-08
/* 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;
第2个回答  2014-01-08

一个个比较,差不多这样

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**/
}

第3个回答  2014-01-08
简单的加个循环判断就可以了追问

请详细点哈,其实我现在主要是想判断一个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 ;
}

C语言怎样比较两个int型数组中的数是不是一模一样?
int b[20];\/\/ 中间为数组赋值过 if (!memcmp(a,b,sizeof(int)*20)) { \/\/ 数组相同 }

怎样比较《C语言》两个int型数组中的数是一样的?
\/* 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 && ...

C语言如何判断两个数组是否相等问题
只能每个元素分别判断了。for ( int i=0;i<5;i++ ){ if( a[i] != b[i] )break;} if(i<5)printf("不相等\\n");else printf("相等\\n");

C语言如何写才能判断两个数组相等
inti=0;intj=0;intarr1[]={1,2,3,4,5};intarr2[]={1,2,7,4,9};for(i=0;i<sizeof(arr1)\/sizeof(arr1[0]);i++){ for(j=0;j<sizeof(arr2)\/sizeof(arr2[0]);j++){ if(arr1[i]==arr2[j]){ printf("存在相同元素");break;} } break;} return0;} ...

c语言怎么判断两个数组中重复数字的个数?
判断两个数组中重复数字的个数方法如下:#include <stdio.h>#include <stdlib.h>int main(){ int n; int *a; int i; scanf("%d", &n); a = (int *)malloc(sizeof(int) * n); for(i = 0; i < n; i ++) { scanf("%d", &a[i]); } fo...

c语言比较两个数组是否完全相同,有两个数组,全部是41字节长,求c语言代 ...
只比较是否相同:include<stdio.h> void main(){ unsigned int a[41],b[41],*p,*q,c[41];int i,bSame;bSame=1;for ( i=0,p=a,q=b;i<41;i++,p++,q++ ) if ( *p != *q ) { bSame=0; break; } if ( bSame ) printf("数组相同\\n"); else printf("数组不相同\\n...

C语言比较两个数组,从末未开始直至其中一个数组结束,比较两个数组有几...
\/ sizeof(int); \/\/取数组2的长度 num = compare_array(arrLen1, arr1, arrLen2, arr2); printf("%d", num); getch(); return 0;}大致应该是这样的。。。有不明白的,留言。PS:strlen是取字符串长度的,这里不适用 PS1:int数组当参数时,默认是传递首地址 ...

判断两个数组中是否有相同的元素 C语言
在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,对此...

用c语言如何判断这两个数组是相等的? int a[5]={1,2,3,2,5}; int b...
先判断长度是不是相等 如果相等 用数组一中每个元素去分别和二中的比,只要在二中都能找到相等的,那个元素就被标记一下,下次不和他比 最后二中的都被标记了,说明完全相等 你自己实现吧 我感觉这个想法应该没错呢~~有什么不对的望提出啊~~...

求C语言程序实现比较两个数组
假设a[10]={0,1,2,3,4,5,6,7,8,9},b[10]={1,3,5,8,5,8,9,6,7,4},编写C语言程序找到两个数组的不重复的数,并把数组b中的重复数字替换,使b中的值为0~9并且不重复... 假设a[10]={0,1,2,3,4,5,6,7,8,9},b[10]={1,3,5,8,5,8,9,6,7,4},编写C语言程序找到两个数组...

相似回答