gpt4 book ai didi

c++ - 需要编写一个函数来检查数组 A1 是否包含在数组 A2 中;否则返回假

转载 作者:行者123 更新时间:2023-11-28 04:07:19 25 4
gpt4 key购买 nike

我必须使用 (a) 部分一个名为 isFound 的函数,它接受三个参数,即一个整数数组,它的大小和一个整数值m;然后如果在数组中找到 m 则返回 true,否则返回 false。

    bool isFound (int arr[], int size, int m)
{
bool result = false;
for (int i = 0; i < size; i++){
if (m = arr[i]){
return true;
}
}
return result;
}

bool isContained(int A1[],int A2[],int size1, int size2)
{
for ( int i = 0; i < size1 ; i ++){
bool result = false;
for ( int j = 0; j < size2 && !isFound; j++){
if ( A1[i] == A2[j]){
result = true;
}
}
if (!isFound){
return false;
}
}
return true;
}

最佳答案

正如已经指出的那样,您正在做一项需要比较的作业。据我所知,您在 isContained 中的逻辑与基础相去甚远——如果您只想知道一个数组是否包含另一个数组的值,则没有理由相互检查两个数组的各个元素。由于您有 isFound(),请使用它 :-)。

这是我对解决方案的看法:

bool isFound(int arr[], int size, int m) {
for (int i=0; i<size; i++)
if (m == arr[i]) return true;
return false;
}

bool isContained(int A1[], int A2[], int size1, int size2) {
for (int i=0; i<size2; i++) {
if (!isFound(A1, size1, A2[i])) return false; // Any one value not included, the array is not included
}
return true;
}

还有我用来确认的代码:

int main() {
int A1[] = { 1,2,3,4,5,6 };
int A2[] = { 1,2 };
std::cout << (isContained(A1, A2, 6, 2) ? "" : "NOT ") << "contained" << "\r\n"; // Output: contained


int A3[] = { 1,2,3,4,5,6 };
int A4[] = { 1,2,8 };
std::cout << (isContained(A3, A4, 6, 3) ? "" : "NOT ") << "contained" << "\r\n"; // Output: NOT contained

}

关于c++ - 需要编写一个函数来检查数组 A1 是否包含在数组 A2 中;否则返回假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58496432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com