没有学过Delphi和Pascal,求职过程中,招聘公司发来一道程序题,问下面的程序有什么逻辑问题!
请大家帮忙看一下!
多谢!Procedure DiscoverSomethingInteresting(Input : Array Of Integer; Out x, y, z : Integer);
Var
i, j, k : Integer;
w : Integer;
Begin
z := -MaxInt;
For i := 1 To Length(Input) Do
Begin
For j := 0 To Length(Input) - i Do
Begin
w := 0;
For k := 0 To i - 1 Do
Begin
w := w + Input[j+k];
End;
If w > z Then
Begin
z := w;
x := j;
y := j+i-1;
End;
End;
End;
End;Notes : The sample above is written in the Delphi language. The array is zero based and the Length function returns the number of elements in the array.
请大家帮忙看一下!
多谢!Procedure DiscoverSomethingInteresting(Input : Array Of Integer; Out x, y, z : Integer);
Var
i, j, k : Integer;
w : Integer;
Begin
z := -MaxInt;
For i := 1 To Length(Input) Do
Begin
For j := 0 To Length(Input) - i Do
Begin
w := 0;
For k := 0 To i - 1 Do
Begin
w := w + Input[j+k];
End;
If w > z Then
Begin
z := w;
x := j;
y := j+i-1;
End;
End;
End;
End;Notes : The sample above is written in the Delphi language. The array is zero based and the Length function returns the number of elements in the array.
解决方案 »
- Access Violation 错误的调试问题
- (急) flash播放器中如何实现有文件播放列表,供用户选择播放;
- treeview 中有类似 tdbgrid 的 oncellclick的东东吗?
- 到底dephi是怎样调用api函数的???????????????????????
- 为什么没人回答我!
- 关于visio2002激活问题
- 关于DELPHI6简体中文版!!!
- 怎么样才能把activexform中的运算结果传送到html中????
- @@@@@@@@@@@@@@@@@@to zswang(伤心伴水)师傅在吗@@@@@@@@@@@@@@@@@
- Delphi如何实现数字证书身份认证
- 基于PC的多电机变频调速系统监控软件开发与实现
- HOOK,HOOK,HOOK,已经快疯了!怎么都搞不定!~~求助啊!
For k := 0 To i - 1 Do
Begin
w := w + Input[j+k]; 这里有可能会越界
我觉得还有个问题就是:
If w > z Then
Begin
z := w;
x := j;
y := j+i-1;
End;
这里w可能=z,因为只要数组中的数要是={-32767,-1,-3,....},这时W=Z,所以x,y,z的值都不会被更新.再下次循环后w=-32767-1 出现越界.听说PASCAL和C这里有区别, 不知道这时W=??