21xrx.com
2025-06-17 11:18:39 Tuesday
登录
文章检索 我的文章 写文章
C++ 实现删除相邻和为10的元素
2023-07-08 19:34:15 深夜i     15     0
C++ 删除 相邻 元素 和为10

C++ 是一种常用的编程语言,其语言特性支持快速高效地处理各种数据。在这篇文章中,我们将介绍如何使用 C++ 编写一个程序来删除相邻和为 10 的数组元素。

首先,让我们创建一个数组,并为其赋值。

int arr[] = 7;

接着,我们可以编写一个 for 循环来遍历数组中的每个元素,并查找相邻的两个元素的和是否为 10。如果是,我们就将它们从数组中删除。

for(int i = 0; i < sizeof(arr)/sizeof(arr[0]) - 1; i++)
{
  if((arr[i] + arr[i+1]) == 10)
  {
    for(int j = i+1; j < sizeof(arr)/sizeof(arr[0]) - 1; j++)
    {
      arr[j] = arr[j+1];
    }
    arr[sizeof(arr)/sizeof(arr[0])-1] = 0;
    i--;
  }
}

上述代码段是核心部分。首先,我们使用 sizeof(arr)/sizeof(arr[0]) 计算数组的大小。然后,我们循环遍历每个元素并检查相邻元素之和是否为 10。如果是,我们遍历整个数组,将相邻元素后面的所有元素向前移动一个位置,覆盖被删除的元素。最后,我们将数组的最后一个元素设置为 0,并将循环变量 i 减 1,以保证每个元素都被检查。

最后,我们可以输出新的数组来检查是否成功删除了所有相邻和为 10 的元素。

for(int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++)
{
  std::cout<<arr[i]<<" ";
}

这就是我们的完整程序:

#include<iostream>
int main()
{
  int arr[] = 4;
  
  for(int i = 0; i < sizeof(arr)/sizeof(arr[0]) - 1; i++)
  {
    if((arr[i] + arr[i+1]) == 10)
    {
      for(int j = i+1; j < sizeof(arr)/sizeof(arr[0]) - 1; j++)
      {
        arr[j] = arr[j+1];
      }
      arr[sizeof(arr)/sizeof(arr[0])-1] = 0;
      i--;
    }
  }
  
  for(int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++)
  {
    std::cout<<arr[i]<<" ";
  }
  
  return 0;
}

通过上述方法,我们成功地使用 C++ 编写了一个程序,用于删除数组中相邻和为 10 的元素。这种方法在实际的数据处理过程中非常有用,可以帮助我们提高数据处理的效率和精度。

  
  
下一篇: C++栈的Push操作

评论区