相同位置具有相同值的测试阵列
我有以下问题:相同位置具有相同值的测试阵列
这里是...输出摘要如下。
输出摘要:测试两个数组以确定它们是否在同一位置包含相同的值。编写一个测试函数isEqual的主程序。使用原型:BOOL的isEqual(INT A [],INT B [])
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
#define FLUSH cin.clear(); while(cin.get()!='\n');
bool isEqual (int A[], int B[]);
int main()
{
int index;
bool matches[10] = {0, 1, 0, 0, 0, 1, 0, 0, 0, 0};
int A[10] = {2, 3, 4, 5, 8, 11, 15, 7, 3, 1};
int B[10] = {1, 3, 7, 2, 3, 11, 8, 9, 10, 0};
for (index = 0; index <= 9; index++)
{
matches[index] = isEqual (A[index], B[index]);
}
if (matches[index] == 1)
{
cout << 1 << endl;
}
}
bool isEqual (int A[], int B[])
{
return (A == B);
}
我必须使用所示的isEqual()的原型,但不知道怎么去比赛数组中的正确的价值观。
好
当您使用[]“操作员”,它会检查该位置的阵列的值
因此,可以说数组A,A[1] == 3
,对不对? B同样适用,B[2] == 7
请记住,数组是基于0的,这意味着元素0实际上是数组中的第一个元素(B[0] == 1
)。
所以当你打电话“isEqual(A[index], B[index])
”,实际发生的事情是
(假设指数== 0)
isEqual(2, 1);
你必须意识到你其实传递了两个数字而不是阵列。
我不喜欢为你做家庭作业,因为你不会学到任何东西。但是为了让你保持正确的轨道,我敢肯定,这个问题可以改写如下
写一个函数“isEqual”,它需要两个数组int
。
内部的功能,比较在两个阵列相同的索引位置的每个编号在一个循环内if (A[index] == B[index])...
如果所有这些比较为真,则数组是相等的。
我建议你也为你的数组大小(10)声明一个全局常量。通常情况下,ISEQUAL的原型是IsEqual(int A[], int B[], int ARRAY_SIZE)
,但你的原型是不是这样的,所以你必须知道你的阵列有多大
我希望它能帮助
在当前形式中,isEqual()
不仅不正确(它只是比较两个指针是否相等),但也无法正确实现,因为无法确定输入数组的大小。假设你的教授不是白痴,我只能猜测你会发现它没有通过你的测试。
至于获得“匹配数组中的正确值”,我认为你不应该为每个元素调用isEqual()
。在整个阵列对上调用一次。
你所要做的是根本错误的,我建议你修改一下你的教授一直教你的东西。 – 2010-12-07 02:01:40
'isEqual`试图做什么?如果你可以评论你的代码,说明你是如何处理这个问题的,那么帮助你会更容易。 – Maxpm 2010-12-07 02:15:20