【发布时间】:2017-05-26 16:58:07
【问题描述】:
我必须扫描大小和2个数组,并将它们与递归进行比较,如果它们相同则返回1,否则返回0。
例如,如果我有: size=5, arr1= 1 2 3 4 5, arr2= 2 1 3 4 5 所以它很好,应该返回 1,当我运行大小为 2 的程序时,并为第一个数组插入“1,2”,为第二个数组插入“3,4”,程序返回 0。这很好,但如果输入“1,2”“1,2”我会出错。
int RecSearch(int* arr1,int* arr2,int n)
{
int i=0,j=0;
for(i=j;j<n;j++)
if(arr1[i]==arr2[j])
{
swap(&arr2[i],&arr2[j]);
RecSearch(arr1-1,arr2-1,n);
}
if (arr1==arr2) return 1;
else return 0;
}
【问题讨论】:
-
你的问题是?此外,您应该更清楚地定义“相同”的含义,因为 [1,2,3,4,5] 和 [2,1,3,4,5] 绝对不是同一个数组。
-
'用递归比较两个数组'........为什么?
-
我必须使用递归并且只有 1 个 for 循环。
-
“比较”是什么意思?为什么要使用
swap()方法? -
你到底为什么要交换两个相同的值?
标签: c arrays recursion compare