您的位置:首页 > 其它

数组比较问题

2015-07-30 10:17 106 查看
问题描述:

比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2个数组长度不等,则只比较较短长度数组个数元素。请编程实现上述比较,并返回比较中发现的不相等元素的个数

比如:数组{1,3,5}和数组{77,21,1,3,5}按题述要求比较,不相等元素个数为0

数组{1,3,5}和数组{77,21,1,3,5,7}按题述要求比较,不相等元素个数为3

#include "stdafx.h"
#include <stdio.h>
#define  MAXSIZE 10000
int comp_noequal(int a[],int b[],int n,int m);
int comphanle(int min1[],int max1[],int minl,int maxl);
int _tmain(int argc, _TCHAR* argv[])
{
int n,m;
int a[MAXSIZE],b[MAXSIZE];
//printf("%s","entry n and m");
while((scanf("%d",&n))&&(scanf("%d",&m))!=EOF){
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int j=0;j<m;j++){
scanf("%d",&b[j]);
}
int num=comp_noequal(a,b,n,m);
printf("%s%d","the num is",num);
}
return 0;
}

int comp_noequal(int a[],int b[],int n,int m){
int num=0;
if(n<=m){
num=comphanle(a,b,n,m);
}
else
{
num=comphanle(b,a,m,n);
}
return num;
}
int comphanle(int min1[],int max1[],int minl,int maxl){
int num=0;
int j=maxl-1;
//之前j放里面并且else里没有-1,j未减直接进入下次循环了
for(int i=minl-1;i>=0;i--){
if(min1[i]!=max1[j]){
num=num+1;
j=j-1;
}
else{
j=j-1;
continue;}
}
return num;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: