我的问题是我有一个生日数组,我需要找到每个生日之间最大的年龄差异。
我在考虑每年减去并将差异存储在一个数组中,然后在该临时数组中找到最大的差异。
#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/