首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一道有趣的有关问题

2012-03-29 
一道有趣的问题在别处看到这么个问题,以下函数,输入Input为一个数组,length为这个数组的长度,x, y, z是输

一道有趣的问题
在别处看到这么个问题,以下函数,输入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了

热点排行