读书人

一道有趣的有关问题

发布时间: 2012-03-29 12:53:13 作者: rapoo

一道有趣的问题
在别处看到这么个问题,以下函数,输入Input为一个数组,length为这个数组的长度,x, y, z是输出。问这个函数的功能是什么,是否存在逻辑错误?

我自己编译了跑了跑,感觉是求出这个数组任意个连续的元素的和的最大值. 感觉有点莫名其妙啊。

void DiscoverSomethingInteresting(int *Input, int length)
{
int i, j, k;
int w;
int x, y, z;

Begin:
z = -2147483648; // MAX negative int
for (i=1; i<=length; i++)
{

for (j=0; j<= length - i; j++)
{
w = 0;

for (k=0; k<=i-1; k++)
{

w = w + Input[j+k];
}
printf("\n");

if (w > z)
{
z = w;
x = j;
y = j+i-1;

}

}

printf("\n");

}

return;

}




[解决办法]
其实要看你的代码很简单
我只要在每次执行的循环的地方加入一条代码
把产生的结果放到文件中去就OK了

读书人网 >C++

热点推荐