我有问题要做。我已经做了一些部分,但是我坚持了,并且不知道下一步该做什么。
问题:“你有两个整数数组,名为A和B.一个包含AMAXELEMENTS,另一个包含BMAXELEMENTS。写一个布尔值函数,如果A中至少有一个点,则返回true与B中的一个点相同,如果两个数组之间没有匹配则为false。“
这两个数组由我组成,我想如果我知道如何比较两个数组,我会很好,我将能够完成我的问题。
这是我到目前为止(我将AMAXELEMENTS改为AMAX,BMAXELEMENTS改为BMAX):
#include <iostream>
using namespace std;
int main()
{
const int AMAX = 5, BMAX = 6;
int i;
bool c1 = true, c2 = false;
int A[AMAX] = { 2, 4, 1, 5, 9 };
int B[BMAX] = { 9, 12, 32, 43, 23, 11 };
for (i = 0; i < BMAX; i++)
if (B[i] == A[i]) // <---- I think this part has to look
// different, but I can't figure it out.
cout << c1 << endl;
else
cout << c2 << endl;
return 0;
}
答案 0 :(得分:4)
这看起来像是家庭作业,所以我不打算给你答案。但我会指出一些基本问题。
首先,您要尝试定义一个返回true / false的函数:
bool has_identical_value(int A[], size_t A_MAX, int B[], size_t B_MAX)
{
bool answer = false;
... your homework goes here ...
return answer;
}
其次是确保你永远不会引用A[i]
i >= A_MAX
,而你永远不会引用B[j]
j >= B_MAX
。
答案 1 :(得分:2)
你应该遍历2个数组,而不是超过1个数组进行比较。否则,您将比较2与9,4与12等
这里有些指向正确的方向:
for(i=0;i<BMAX;i++)
{
for (j=0;j<AMAX;j++)
{
if (B[i]==A[j])
{
}
else
{
}
}
}
你应该将它包装在一个函数中,如问题所示。
答案 2 :(得分:0)
首先,你必须写一个函数。然后了解函数,因为它看起来像你现在还不知道函数是什么。
这是提示,你的循环做错了什么?
for(i=0;i<BMAX;i++)
if (B[i]==A[i]) //A[BMAX - 1]???
答案 3 :(得分:0)
我的回答......经过几个小时的工作:) 谢谢你的帮助!
使用namespace std;
bool myBool(int,int,int [],int []);
int main(){
const int SIZEA=5;
const int SIZEB=4;
int A[]={54,65,76,67,4};
int B[]={23,435,67,5};
if (myBool(SIZEA, SIZEB,A,B))
cout<<"TRUE"<<endl;
else
cout<<"FALSE"<<endl;
return 0;
}
bool myBool(int AMAXELEMENTS, int BMAXELEMENTS, int A[], int B[]){
int i,j;
for(i=0;i<AMAXELEMENTS;i++){
for(j=0;j<BMAXELEMENTS;j++){
if(A[i]==B[j])
return true;
}
}
return false;
}