我的问题是我有一个生日数组,我需要找出每个生日之间最大的年龄差异。
我当时想减去每年,并将差异存储在一个数组中,然后在该临时数组中找到最大的差异。
#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;
}
当我尝试此操作时,我并没有得到每个年龄的差异,该程序仅适用于第一个元素。
我在这部分上遇到困难,当我在临时数组中有正确的值时,我可以设法找到最大的元素。
答案 0 :(得分:1)
您将计算出的差异存储在此fn g(a: &mut str, closure: impl for<'a, 'd> Fn(&'a mut str, &'d str) -> ())
数组的位置i
处。 temp
的值仅在内部i
循环完成执行后更新。这将导致值被覆盖。尝试类似的东西:
j