C语言怎样比较两个int型数组中的数是不是一模一样?

如题所述

下面是一种方法:

[cpp] view plain copy
#define _CRT_SECURE_NO_WARNINGS 1   
#include<stdio.h>  
#include<stdlib.h>  
int main()  
{  
    int arr1[4] = {0};  
    int arr2[5] = {0};  
    int i = 0,j=0,k=0;  
    printf("请输入数组1(4个元素):\n");  
    for(i = 0;i<sizeof(arr1)/sizeof(arr1[0]);i++)  
    {  
        scanf("%d",&arr1[i]);  
    }  
    printf("请输入数组2(5个元素):\n");  
    for(i=0;i<sizeof(arr2)/sizeof(arr2[0]);i++)  
    {  
        scanf("%d",&arr2[i]);  
    }  
  
    for(j = 0; j<sizeof(arr1)/sizeof(arr1[0]); j++)  
    {  
        for(k = 0;k<sizeof(arr2)/sizeof(arr2[0]);k++)  
        {  
            if(arr1[j] == arr2[k])  
            {  
                printf("有相同元素!\n");  
            }  
            if(k<sizeof(arr2)/sizeof(arr2[0]))     
            {  
                break;  
            }  
        }  
        if(j>=sizeof(arr1)/sizeof(arr1[0]))    
        printf("没有相同元素!\n");  
    }  
    return 0;  
}  




上面的方法就需要判断的多一些了,并且判断的地方也要找准,下面的方法就会简单一些:

[cpp] view plain copy
#define _CRT_SECURE_NO_WARNINGS 1   
#include<stdio.h>  
#include<stdlib.h>  
int main()  
{  
    int arr1[4] = {0};  
    int arr2[5] = {0};  
    int i = 0,j=0,k=0;  
    printf("请输入数组1(4个元素):\n");  
    for(i = 0;i<sizeof(arr1)/sizeof(arr1[0]);i++)  
    {  
        scanf("%d",&arr1[i]);  
    }  
    printf("请输入数组2(5个元素):\n");  
    for(i=0;i<sizeof(arr2)/sizeof(arr2[0]);i++)  
    {  
        scanf("%d",&arr2[i]);  
    }  
  
    for(j = 0; j<sizeof(arr1)/sizeof(arr1[0]); j++)  
    {  
        for(k = 0;k<sizeof(arr2)/sizeof(arr2[0]);k++)  
        {  
            if(arr1[j] == arr2[k])  
            {  
                printf("有相同元素!\n");  
                return 0;  
            }  
        }  
    }  
    printf("没有相同元素!\n");  
    return 0;  
}  









温馨提示:内容为网友见解,仅供参考
无其他回答

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语言怎么判断两个数组中重复数字的个数?
判断两个数组中重复数字的个数方法如下:#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语言
在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,对此...

求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语言程序找到两个数组...

c语言中,如何判断两个char型的数组是否相同?
因为没有初始化,所以即使a[0]和b[0]相等,也不能说数组a和b就相等 把a和b都初始化为同一个数,然后计算以后,用strcmp 或者你真的仅仅要比较a[0]和b[0]就可以判断是否相等的话,那么直接比较下if(a[0]==b[0])严格来说,使用任何未初始化的局部变量都是很傻的做法 ...

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

c语言怎么写个函数,这个函数能比较两个数组里有几个数相同,并且输出这 ...
语句大体如下:int a[30],b[30]int total;for i=0 to 30 { if (a[i]==b[i]) ++total;} printf("\\%d",&total)

相似回答