严格相同的阵列输入

Strictly Identical arrays input

本文关键字:阵列 输入      更新时间:2023-10-16

清理此代码的任何一般技巧?似乎我可以完成所有检查的任务。

谢谢!

TXT书籍问题:(严格相同的数组)两个数组list1 []和list2 []严格相同,如果它们的长度相同,list1 []等于list2 [i]。

写一个函数,如果List1和List2使用以下标头严格相同,则返回true

  bool strictlyEqual(const int list1[], const int list2[], int size)

编写一个测试程序,该程序提示用户输入两个整数列表,并显示两者是否严格相同。样本运行以下。请注意,输入中的第一个数字指示列表中元素的数量。此数字不是列表的一部分。假设列表大小为最大

我的代码:

   #include <iostream>
   using namespace std;
   bool strictlyEqual(int const list1[], int const list2[], int size);
   bool strictlyEqual (int x1[], int x2[], int n)
   {
     int f=0; int i;
     for (i =1; i<=n; i++)
     {
               if (x1[i] != x2[])
               {
                  // breaks loop
                    f=1;
                    break;
                }
     } 
 if (f==0)
 return (true);
 else 
 return(false);
 }

int main ()
cout << "enter list1: " << endl;
int list1[20], i;
cin >> list1[0];
for (i=1; i<= list1[0]; i++)
cin>> list1[i];
cout <<"enter the list2" << endl;
int list2[20];
cin >> list2[0];
for (i=1; i<= list2[0]; i++)
cin >> list2[i];
if (list1[0] == list2[0]
{
     int size = list2[0];
     bool v=strictlyEqual(list1, list2, size);
     if (v== true)
     cout << "identical" << endl;
     else 
     cout << "not identical " << endl;
 }
  return 0;
 }

一个简单的解决方案将使用memcmp函数。

int memcmp ( const void * ptr1, const void * ptr2, size_t num );

比较了ptr1指向内存块的第一个num字节与ptr2指向的第一个num字节,如果它们都匹配或与零表示的值不同,则返回零。

bool strictlyEqual (int x1[], int x2[], int n){
    return memcmp(x1, x2, n * sizeof(int)) == 0;
}