求助pascal问题 201错误!!!!!!!!!!!在线等!

帮我看一下我的程序哪里错了,显示201错误!!本人小白看不出来!!
var o,z,k,m,i,n,t:integer;
a,b:array[1..10000] of longint;
begin
readln(n);
for i:= 1 to n do read(a[i]);
k:=n;
repeat
for i:= 1 to k-1 do
if (a[i+1]<a[i] ) then begin t:=a[i]; a[i]:=a[i+1];a[i+1]:=t;
end;
k:=k-1;
until k=1;
begin
m:=1;
o:=1;
z:=1;
for i:= 1 to n doinc(b[o]); ao
repeat
if (a[z]=a[z+1]) then begin ]); [z]:=0; end;
if (a[z]<>a[z+1]) then begin inc(o); inc(b[end;
inc(z);
until z=n-1;
end;begin if (a[i]<>0) then write(a[i],b[o]); end;
end.
sorry那是排版排错了,以下才是

var o,z,k,m,i,n,t:integer;
a,b:array[1..10000] of longint;
begin
readln(n);
for i:= 1 to n do read(a[i]);
k:=n;
repeat
for i:= 1 to k-1 do
if (a[i+1]<a[i] ) then begin t:=a[i]; a[i]:=a[i+1];a[i+1]:=t;
end;
k:=k-1;
until k=1;
begin
m:=1;
o:=1;
z:=1;
for i:= 1 to n do
repeat
if (a[z]=a[z+1]) then begin inc(b[o]); a[z]:=-1; end;
if (a[z]<>a[z+1]) then begin inc(o); inc(b[o]); end;
inc(z);
until z=n-1;
end;begin if (a[i]<>0) then write(a[i],b[o]); end;
end.
我也知道是下标溢出,我是看了半天不知是哪溢出啊!

最佳答案

检举
隐藏

Pascal运行错误对照表

运行错误是指程序运行时出现的错误,当发生时,Turbo Pascal显示如下信息:
RUNTIME ERROR NNNN AT XXXX:YYYY
其中,nnnn是运行错误代码,xxxx是错误发生的程序段,yyyy是错误地址偏移。

DOS 错误代码:
1无效DoS功能号
2文件末找到
3路径未找到
4打开文件过多
5禁止文件存取
6无效文件句柄
12无效文件存取代码
15无效驱动器号
16不能删除当前日录
17不能跨驱动器改文件名

IO错误
100磁盘读错误
101磁盘写错误
102文件变量末赋值
103文件未打开
104文件未用输入方式打开
105文件末用输出方式打开
106无效数字格式

严重错误
150磁盘写保护
15l未知单元
152驱动器未准备好
153未知命令
154数据CRC校验错
155驱动器请求的结构长度错
156磁盘定位错
157未知媒介类型
158扇区末找到
159打印机缺纸
160设备写失败
161设备读失败
162硬件故障

致命错误
200被零除
20l范围检查错
202堆栈溢出错
203堆溢出错
204无效指针操作
205浮点上溢出
206浮点下溢出
207无效浮点运算
208未安装覆盖管理程序
209覆盖文件读错
210对象未初始化
2ll调用抽象方法
212流登计错
213集合下标越界
214集合溢出
215 算术上溢错误
216 存取非法
217 控制-C
218 授权指令
219 无效的TYPECAST
220 无效的变体TYPECAST
221 无效的变体操作
222 没有变体方法调用DISPATCHER
223 不能建立变体数组
224 变体不包含数组
225 变体数组边界错误
226 TLS初始化错误

Pascal编译错误对照表

下面列出在编译程序时可能出现的错误,在集成环境下,Turbo Pascal将自动加载源程序并定位于出错处。
l内存溢出
2缺标识符
3标识符未定义
4标识符重定义
5语法错误
6实型常量错
7整型常量错
8字符串常量跨行
9文件嵌套过多
10非正常文件结束
11行过长
12缺类型标识符
13打开文件过多
14无效文件名
15文件未找到
16磁盘满
17无效编译指示
18文件过多
19指针定义中未定义类型
20缺变量标识符
21类型错误
22结构过长
24文件分量不能为文件
25无效字符串长度
26类型不匹配
27无效子界基类型
28下界大于上界
29缺有序类型
30缺整型常数
31缺常数
32缺整型或实型常数
33缺指针类型标识符
34无效的函数结果类型
35缺标号标识符
36缺BEGIN
37缺END
38缺整型表达式
39缺有序表达式
40缺布尔表达式
41操作数类型与操作符不匹配
42表达式错
43非法赋值
44缺字段标识符
45目标文件过长
46未定义外部标识符
47无效.OBJ文件记录
48代码段过长
49数据段过长
50缺DO
51无效PUBLIC定义
52无效EXTRN定义
53EXTRN定义过多
54缺0F
55缺INTERFACE
56无效重定位引用
57缺THEN
58缺T0或DOWNTO
59未定义的向前引用
60过程过多
61无效类型转换
62被零除D
63无效文件类型
64不能读写该类型的变量
65缺指针变量
66缺字符串变量
67缺字符串表达式
68单元循环引用
69单元名不匹配
70单元版本不匹配
71单元重名
72单元文件格式错误
73缺IMPLEMENTATl0N
74常数与CASE类型不相匹配
75缺记录变量
76常数越界
77缺文件变量
78缺指针变量
79缺整型或实型表达式
80标号不在当前块中
81标号已定义
82标号未定义
83无效参数
84缺UNIT
85缺“;”
86缺“:”
87缺“,”
88缺“(”
89缺“)”
90缺“=”
91缺“:=”
92缺“[”或“(.”
93缺“]”或“.)”
94缺“.”
96变量过多
97无效FOR控制变量
98缺整型变量
99此处不允许用文件和
100字符串长度不匹配
101无效字顺序
102缺字符串常数
103缺整型或实型变量
104缺有序变量
105INLINE错
106缺字符表达式
107重定位项过多
112CASE常量越界
113语句错
114不能调用中断过程
116必须在8087方式下编译
117末找到目标地址
118此处不允许包含文件
120缺NIL
121无效限定符
122无效变量引用
123符号过多
124语句部分过长
126文件必须为变量参数
127条件符号过多
128条件指令错位
130初始条件定义错
13l过程和函数头与前面定义的不匹酉
132严重磁盘错误
133不能计算该表达式
134表达式错误结束
l35无效格式说明符
136无效间接引用
137此处不允许结构变量
138无SYSTEM单元不能计算
l39不能存取该符号
140无效浮点运算
141不能将覆盖编译至内存
142缺过程和函数变量
143无效过程或函数引用
144不能覆盖该单元
147缺对象类型
148不允许局部对象类型
149缺VIRTUAL
150缺方法标识符
151不允许虚拟构造方法
152缺构造方法标识符
153缺释放方法标识符
154FAIL只允许在构造方法内使用
155无效的操作符和操作数组合
156缺内存引用
l57不能加减可重定位符号
158无效寄存器组合
159未激活286/287指令
160无效符号引用
161代码生成错
162缺ASM

你的201是范围检查错

参考资料: http://zhidao.baidu.com/question/92735404.html?si=7
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-12
var o,z,k,m,i,n,t:integer;
a,b:array[1..10000] of longint;
begin
readln(n);
for i:= 1 to n do read(a[i]);
k:=n;
repeat
for i:= 1 to k-1 do
if (a[i+1]<a[i] ) then begin t:=a[i]; a[i]:=a[i+1];a[i+1]:=t;
end;
k:=k-1;
until k=1;
begin
m:=1;
o:=1;
z:=1;
for i:= 1 to n do
repeat
if (a[z]=a[z+1]) then begin inc(b[o]); a[z]:=-1; end;
if (a[z]<>a[z+1]) then begin inc(o); inc(b[o]); end;
inc(z);
until z=n-1;{这个循环语句死循环了,Z不断变大,最后就201了}
end;begin if (a[i]<>0) then write(a[i],b[o]); end;
end.

Pascal程序201错误
201 Range check error 如果你编译你的程序时设置了方位检查,原因有可能是:数组访问超过了声明的范围.试图给一个变量赋值超过其范围(例如枚举类型).

pascal 201错误
你的错误主要在f数组上,开到n是不够的因为你不能保证在f[a+d-c+k]or f[a+k]or f[d-b+a+k]中都不超过f[16],所以保险开到1000,其实不占多少空间,不用这样省的。我改完应该就可以了

如何解决Pascal中的erroe 201
你设的数据溢出了,方法如2楼的解决(我改了一下):real->extended {free pascal独有,不过有可能要开开关!} integer->longint {这个是longint!楼上的都错了!} longint->int64 {pascal独有,非常之大!!!}

FreePascal高手看看问题出在哪里?显示错误201
1、首先,你的‘ch'与'kh'数组的下限不是1,而是0 2、while gao<>1 do 这句话是错误的,二进制的1并非只有末尾有 3、 i:=i+1; gao:=kh[i]; 此时i在循环前的初值是32767,应为’i:=i-1‘那么,这是我改进的程序:var ch,kh:array[0..32767] of longint;i:longint;num,gao...

pascal 更相减损法求最大公约数 输入m>n时 正常 输入m<n时 错误201...
你好,我想你也是今年noip的学生把,我也是的,这个程序总的来说还是没有大的问题的,你之所以 输入m>n时 正常 输入m<n时 错误201 是因为在m>n时这个是不用调用过程的,所以可以肯定的是你的过程出了错误。procedure f(m,n:integer); 这一步,开始你的定义是形式参数,而你的过程是交换m,...

pascal编程错误:exitcode=201
main 应该赋值为 longint;integer 能接受的最大值是32767,而8的阶乘为40320,超出了integer 的范围;7 的阶乘为5040,仍在integer 范围内;一般求阶乘等解的值可能较大的题时,用较大范围的数据类型;实在不行,用real,输出时加双场宽就行了。

pascal为什么总是出现错误201?清零个数组都是错误201!?
下标溢出,很容易犯的错,我也经常这样,特别是在有子程序或递归时常出现

Free Pascal runtime error 201 at $00416AE 怎么解决?
n-1的值为3 m的循环范围是从n-1到1,也就是从3到1 当m=1的时候,a[n,m]:=a[n,m-1]+1 此时的m-1等于0 也就是把a[n,m]的值赋值为a[n,m-1]+1的值 而a[n,m-1]是数组a的4行0列,超出了原先定义的1..20,1..20的范围 所以出现201的溢出错误 希望我的回答有所帮助 ...

free pascal 的问题:program exited with exitcode=201 向大虾求助
没错误啊,你把这个输进去看看 var a,b,c,d,e,f,g,h,i,j,j1,j2,j3,j4,j5:integer;begin readln(b,c,d,e,f,g,h,i);a:=b+c+d+e+f+g+h+i;j:=a mod 10;j1:=a div 10;j2:=j+j1;if j2<10 then writeln(j2) else j3:=j2 mod 10;j4:=j2 div 10;j5:=j4+j3;wr...

Pascal- 寻宝问题(求纠错~)
random有时候会产生负数,应该是这样,你可以加一个abs来。201是数组越界,你看看哪里的数组下标出错。或者你把数组的范围改大点。

相似回答