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

标签 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;
}

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

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

最佳答案

您将计算出的差异存储在此 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++;
       }
  }

关于c++ - 减去数组中的每个元素并找到其中最大的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53972505/

相关文章:

C++函数作为参数二分搜索

java - 如何在 Java 中比较两个 HashMap

c - 用 C 和 Win32 API 编程 : Comparing Strings

c# - 优化复杂物体比较

c++ - CreateProcess( ) 不创建带有 CREATE_NEW_CONSOLE 标志的新窗口 - C/C++

c++ - 重载 + 运算符问题与其他类中的友元函数混合

C++ : Cannot declare field to be of abstract type

java - 如何从一组日期中减去一个日期?

c++ - 将短裤数组转换为 double 数组

arrays - 从三个数组中找到每个元素的最大乘积