将数组中的每个元素相减并找到其中的最大元素

时间:2018-12-29 18:58:42

标签: c++ arrays comparison

我的问题是我有一个生日数组,我需要找出每个生日之间最大的年龄差异。

我当时想减去每年,并将差异存储在一个数组中,然后在该临时数组中找到最大的差异。

#include <iostream>

using namespace std;

int main()
{
    int t[5] = {1999,2001,1996,1998,1999};
    int temp[10] = {0};
    for (int i=0; i<5;i++)
    {
       for (int j=i+1; j<5; j++)
       {
         if(t[i] > t[j])
         {
            temp[i] = t[i] - t[j];
         }
          else  if (t[i] < t[j])
         {
            temp[i] = t[j] - t[i];
         }
         else 
         {
            temp[i] = 0;
         }
       }
     }

    for (int i=0; i<10;i++)
    cout << temp[i] <<" ";

    return 0;
}

当我尝试此操作时,我并没有得到每个年龄的差异,该程序仅适用于第一个元素。

我在这部分上遇到困难,当我在临时数组中有正确的值时,我可以设法找到最大的元素。

1 个答案:

答案 0 :(得分:1)

您将计算出的差异存储在此fn g(a: &mut str, closure: impl for<'a, 'd> Fn(&'a mut str, &'d str) -> ()) 数组的位置i处。 temp的值仅在内部i循环完成执行后更新。这将导致值被覆盖。尝试类似的东西:

j