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

Substract every element in an array and find the largest among them

本文关键字:元素 数组      更新时间:2023-10-16

我的问题是我有一个包含生日的数组,我需要找到每个生日中最大的年龄差异。

我正在考虑每年减去并将差异存储在一个数组中,并在该临时数组中找到最大的差异。

#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;
}

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

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

您正在将此temp数组的位置i存储计算出的差值。i的值仅在内部j循环完成执行后更新。这会导致值被覆盖。尝试类似操作:

 int k = 0;
 for (int i=0; i<5;i++)
 {
      for (int j=i+1; j<5; j++)
      {
           if(t[i] > t[j])
           {
               temp[k] = t[i] - t[j];
           }
           else  if (t[i] < t[j])
           {
               temp[k] = t[j] - t[i];
           }
           else 
           {
               temp[k] = 0;
           }
           k++;
       }
  }