c++函数问题:请尽量详细注释
1、写一个名为ISSRID的函数,它取三个参数,即整数数组、它的大小和整数值M;然后如果在数组中找到M,则返回true,否则返回false。
2、写一个名为ISLIMIT的函数,它的两个整数数组A1和A2和它们的大小分别是siZe1和siZ2;如果数组A1的所有元素都包含在数组A2中,则返回true;否则返回false。在这个问题中,你必须使用上面(1)部分定义的函数
#include <iostream>
bool ISSRID(int* arr, int size, int m){
//遍历数组,寻找特定的值,找到则返回true
for (int i = 0; i < size; ++i) {
if (m == arr[i]) return true;
}
return false;
}
bool ISLIMIT(int* arr1, int* arr2, int size1, int size2){
//遍历第一个数组
for (int i = 0; i < size1; ++i) {
//能否在第二个数组中找到第一个数组的值,找不到返回false
if (! ISSRID(arr2, size2, arr1[i])){
return false;
}
}
return true;
}
int main(){
int arr1[] = {5,3,8,3};
int arr2[] = {1,2,6,3,7,3};
std::cout<<ISLIMIT(arr1,arr2, sizeof(arr1) / sizeof(arr1[0]), sizeof(arr2) / sizeof(arr2[0]))<<std::endl;
return 0;
}
bool ISSRID(int *a, int length, int M){
for(int i = 0; i < length; ++i){ // 遍历数组
if(a[i] == M) // 有相等元素,直接返回
return true;
}
return false; // 遍历没有找到相等元素,返回false
}
bool ISLIMIT(int *a1, int *a2, int size1, int size2){
for(int i = 0; i < size1; ++i){ // 遍历a1
if(ISSRID(a2, size2, a1[i]) == false) // 如果a1中某个元素不在a2中,返回false
return false;
}
return true; // 没有发现不在a2中的,返回true
}
boolean ISSRID(int *sBuff, int iBufSize, int iKey)
{
int i = 0;
if(!sBuff || iBufSize<0) //invalid param
return false;
for(i=0; i< iBufSize; i++) //loop
{
if(iKey == sBuff[i]) //if include, return true;
return true
}
return false; //did not find it
}
boolean ISLIMIT(int *A1, int *A2, int A1Size, int A2Size)
{
int iCount = 0;
if(!A1 || !A2 || A1Size>A2Size) //invalid param
return false;
for(iCount=0; iCount<A1Size; iCount++) //循环比较A1里面的数据
{
if(ISSRID(A2, A2Size, A1[iCount]) == false) //如果返回false 就返回false
return false;
}
return true; //全部存在
}
望采纳
(1) bool ISSRID(int[] numArr,int size,int numM)
{
for(int i = 0;i<size;i++)
{
if(numArr[i] == numM) return true;
}
return false;
}
(2) bool ISLIMIT(int[] numArr1,int[] numArr2,int size1,int size2)
{
if(size1>size2) return false;
for(int i = 0;i<size1;i++)
{
if(!ISSRID(numArr2,size2,numArr1[1])) return false;
}
return true;
}