【发布时间】:2015-03-12 00:41:59
【问题描述】:
我最近遇到了这行代码,它的作用是遍历一个数组并返回最常看到的值。例如 1,1,2,1,3 所以它会返回 1 因为它看起来比 2 和 3 以上一步,但它没有响起任何铃声。
谁能帮我理解这里发生了什么?如果有人能告诉我 c 做了什么以及 if 语句中的参数背后的逻辑是什么,那将是一个整体。
int[] arr = a;
int c = 1, maxcount = 1, maxvalue = 0;
int result = 0;
for (int i = 0; i < arr.Length; i++)
{
maxvalue = arr[i];
for (int j = 0; j <arr.Length; j++)
{
if (maxvalue == arr[j] && j != i)
{
c++;
if (c > maxcount)
{
maxcount = c;
result = arr[i];
}
}
else
{
c=1;
}
}
}
return result;
【问题讨论】: